簡體   English   中英

如何使用WebClient將多個參數發送到Web API調用

[英]How to send multiple parameters to a Web API call using WebClient

我想通過POST請求將兩個參數發送到Web API服務。 當我以下列方式嘗試時(例如來自msdn) ,我目前收到404找不到的消息:

public static void PostString (string address)
{
    string data = "param1 = 5 param2 = " + json;
    string method = "POST";
    WebClient client = new WebClient ();
    string reply = client.UploadString (address, method, data);

    Console.WriteLine (reply);
}

其中json是對象的json表示形式。 這並沒有工作,我曾與查詢參數在嘗試這個帖子 ,但沒有找到相同404返回。

有人可以給我提供一個將兩個參數發送到POST請求的WebClient示例嗎?

注意:我試圖避免將兩個參數都包裝在同一個類中,以僅發送給服務(因為我在這里找到了建議)

我建議將您的參數作為NameValueCollection發送。

發送帶有NameValueCollection的參數時,您的代碼將如下所示:

using(WebClient client = new WebClient())
        {
            NameValueCollection requestParameters = new NameValueCollection();
            requestParameters.Add("param1", "5");
            requestParameters.Add("param2", json);
            byte[] response = client.UploadValues("your url here", requestParameters);
            string responseBody = Encoding.UTF8.GetString(response);
        }

使用UploadValues將使您更輕松,因為該框架將構造請求的主體,並且您不必擔心串聯參數或轉義字符。

我設法通過在地址鏈接和json中將簡單參數作為正文數據發送來發送json對象和簡單值參數:

public static void PostString (string address)
{
    string method = "POST";
    WebClient client = new WebClient ();
    string reply = client.UploadString (address + param1, method, json);

    Console.WriteLine (reply);
}

地址需要包含value參數的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM