http请求参数中关于from-data的提交方式
#region
string reqUrl = "http://XXXX.XXXX.XX.XX/authorization/oauth/token";
System.Collections.Generic.Dictionary<string, string> parameters = new System.Collections.Generic.Dictionary<string, string>();
parameters.Add("username", "123");
parameters.Add("password", "123456");
parameters.Add("scope", "read");
parameters.Add("grant_type", "password");
parameters.Add("vc", "NO");
System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(reqUrl);
var boundary = "---------------" + DateTime.Now.Ticks.ToString("x"); // 边界符
webRequest.Method = "POST";
webRequest.Timeout = 60000;
webRequest.Headers.Set("Authorization", "123456");//Header 存放产品api-key
webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
var beginBoundary = System.Text.Encoding.ASCII.GetBytes("--" + boundary + "\r\n");// 开始边界符
var endBoundary = System.Text.Encoding.ASCII.GetBytes("--" + boundary + "--\r\n");// 结束结束符
var newLineBytes = System.Text.Encoding.UTF8.GetBytes("\r\n");
using (var stream = new System.IO.MemoryStream())
{
stream.Write(beginBoundary, 0, beginBoundary.Length);// 写入开始边界符
// 写入字符串
var keyValue = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}\r\n";
foreach (string key in parameters.Keys)
{
var keyValueBytes = System.Text.Encoding.UTF8.GetBytes(string.Format(keyValue, key, parameters[key]));
stream.Write(beginBoundary, 0, beginBoundary.Length);
stream.Write(keyValueBytes, 0, keyValueBytes.Length);
}
//写入结束边界符
stream.Write(endBoundary, 0, endBoundary.Length);
webRequest.ContentLength = stream.Length;
stream.Position = 0;
var tempBuffer = new byte[stream.Length];
stream.Read(tempBuffer, 0, tempBuffer.Length);
using (System.IO.Stream requestStream = webRequest.GetRequestStream())
{
requestStream.Write(tempBuffer, 0, tempBuffer.Length);
using (var response = webRequest.GetResponse())
using (System.IO.StreamReader httpStreamReader = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
{
string strResponse = httpStreamReader.ReadToEnd();
JToken objToken1 = JToken.Parse(strResponse);
if (objToken1["success"].ToStr() == "True")
{
JObject jobject = JObject.Parse(objToken1["result"].ToStr());
accessToken = jobject["accessToken"].ToStr();
HttpWebRequest httpRequest2 = (HttpWebRequest)WebRequest.Create("http://XXX.XXXX.XXXXX/catalog/resCatalogApply/getData/UC_QUERY_CSGQ_307013200000000019_1");
httpRequest2.Timeout = 100000;
httpRequest2.Method = "Get";
httpRequest2.Headers.Set("Authorization", "Bearer " + accessToken + "");//Header 存放产品api-key
HttpWebResponse httpResponse2 = (HttpWebResponse)httpRequest2.GetResponse();
StreamReader sr2 = new StreamReader(httpResponse2.GetResponseStream());
string result2 = sr2.ReadToEnd();
JToken objToken2 = JToken.Parse(result2);
if (objToken2["errno"].ToInt32() == 0)
{
JArray j = JArray.Parse(objToken2["list"].ToStr());
foreach (var item in j)
{
}
}
#endregion
浙公网安备 33010602011771号