用WebClient来POST数据的问题
比如代码
client.UploadStringAsync(uri, "id=aaaaaaa");
其中client就是一个WebClient对象
问题是。。。。。在uri所指定的web页面,可以取到 id=evsegxvds 这整个字符串,但却不能以Request.Form["id"]的方式取得aaaaaaa
怎么解决这个问题?
[解决办法]
你这是get方式吧!
第二个参数直接传值吧!把ID写到第一个参数去试试!
[解决办法]
下面的代码是我读SLExtension看到的,应该对你有帮助:
- C# code
/// <summary> /// Method extensions for SLExtension framework /// </summary> public static class SLExtension { .... #region WebClient /// <summary> /// Sends an HTML form. The request is sent using POST method /// </summary> /// <param name="webclient">The webclient.</param> /// <param name="uri">The URI of the resource to receive the file. </param> /// <param name="data">The form data to upload.</param> public static void SendHtmlForm(this WebClient webclient, Uri uri, IEnumerable<KeyValuePair<string, string>> data) { StringBuilder dataBuilder = new StringBuilder(); int cnt = 0; foreach (var item in data) { if (cnt > 0) { dataBuilder.Append('&'); } dataBuilder.Append(item.Key); dataBuilder.Append('='); dataBuilder.Append(HttpUtility.UrlEncode(item.Value)); } webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; webclient.UploadStringAsync(uri, dataBuilder.ToString()); } /// <summary> /// Sends an HTML form. The request is sent using POST method /// </summary> /// <param name="webclient">The webclient.</param> /// <param name="uri">The URI of the resource to receive the file. </param> /// <param name="data">The form data to upload.</param> /// <param name="userToken">user state</param> public static void SendHtmlForm(this WebClient webclient, Uri uri, IEnumerable<KeyValuePair<string, string>> data, object userToken) { StringBuilder dataBuilder = new StringBuilder(); int cnt = 0; foreach (var item in data) { if (cnt > 0) { dataBuilder.Append('&'); } dataBuilder.Append(item.Key); dataBuilder.Append('='); dataBuilder.Append(HttpUtility.UrlEncode(item.Value)); } webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; webclient.UploadStringAsync(uri, "POST", dataBuilder.ToString(), userToken); } #endregion WebClient #endregion Public Methods }
[解决办法]
WebClient.UploadStringAsync 方法 (Uri, String, String, Object)
address
型:System.Uri
要接收案之源的 URI。 於 HTTP 源而言, URI 必出可以接受使用 POST 方法送之要求的源,例如指令或 ASP 。
method
型:System.String
送案源所使用的 HTTP 方法。 如果 null, HTTP 的值 POST。
data
型:System.String
要上的字串。
userToken
型:System.Object
使用者定的物件,物件在非同步作完成至叫用的方法。
[解决办法]