如何在WebRequest中添加参数?

我需要从Web服务调用方法,所以我编写了以下代码:

 private string urlPath = "http://xxx.xxx.xxx/manager/";

string request = urlPath + "index.php/org/get_org_form";

WebRequest webRequest = WebRequest.Create(request);

webRequest.Method = "POST";

webRequest.ContentType = "application/x-www-form-urlencoded";

webRequest.

webRequest.ContentLength = 0;

WebResponse webResponse = webRequest.GetResponse();

但是此方法需要一些参数,如下所示:

_username:'API USER',         // api authentication username

_password:'API PASSWORD', // api authentication password

如何将这些参数添加到此Webrequest中?

提前致谢。

回答:

如果这些是url-string的参数,那么您需要通过’?’添加它们

和’&’字符,例如http://example.com/index.aspx?username=Api_user&password=Api_password。

如果这些是POST请求的参数,那么您需要创建POST数据并将其写入请求流。这是示例方法:

private static string doRequestWithBytesPostData(string requestUri, string method, byte[] postData,

CookieContainer cookieContainer,

string userAgent, string acceptHeaderString,

string referer,

string contentType, out string responseUri)

{

var result = "";

if (!string.IsNullOrEmpty(requestUri))

{

var request = WebRequest.Create(requestUri) as HttpWebRequest;

if (request != null)

{

request.KeepAlive = true;

var cachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache);

request.CachePolicy = cachePolicy;

request.Expect = null;

if (!string.IsNullOrEmpty(method))

request.Method = method;

if (!string.IsNullOrEmpty(acceptHeaderString))

request.Accept = acceptHeaderString;

if (!string.IsNullOrEmpty(referer))

request.Referer = referer;

if (!string.IsNullOrEmpty(contentType))

request.ContentType = contentType;

if (!string.IsNullOrEmpty(userAgent))

request.UserAgent = userAgent;

if (cookieContainer != null)

request.CookieContainer = cookieContainer;

request.Timeout = Constants.RequestTimeOut;

if (request.Method == "POST")

{

if (postData != null)

{

request.ContentLength = postData.Length;

using (var dataStream = request.GetRequestStream())

{

dataStream.Write(postData, 0, postData.Length);

}

}

}

using (var httpWebResponse = request.GetResponse() as HttpWebResponse)

{

if (httpWebResponse != null)

{

responseUri = httpWebResponse.ResponseUri.AbsoluteUri;

cookieContainer.Add(httpWebResponse.Cookies);

using (var streamReader = new StreamReader(httpWebResponse.GetResponseStream()))

{

result = streamReader.ReadToEnd();

}

return result;

}

}

}

}

responseUri = null;

return null;

}

以上是 如何在WebRequest中添加参数? 的全部内容, 来源链接: utcz.com/qa/425018.html

回到顶部