如何在HTTP标头中添加DataID和密码。如下所示?
POST / serviceCall / HTTP / 1.1
主持myHost
内容长度459
Origin chrome-extension:// cokgbflfommojglbmbpenpphppikmonn
DataID 25
密码t123456
用户代理Mozilla / 5.0
内容类型应用程序/ json
接受 /
接受编码gzip,deflate,sdch
Accept-Language en-US,en; q = 0.8
Accept-Charset ISO-8859-1,utf-8; q = 0.7,*; q = 0.3
我试图添加多种方式
s_requestPath = "http://myServiceCall_URL";
WebRequest s_request = WebRequest.Create(s_requestPath);
// 1st try
WebHeaderCollection myWebHeaderCollection = s_request.Headers;
myWebHeaderCollection.Add("DataID", dataID);
myWebHeaderCollection.Add("Password", registerViewModel.ConfirmPassword);
//2nd try
//s_request.Credentials = new NetworkCredential( dataID , registerViewModel.ConfirmPassword);
//3rd try
//s_request.Headers.Add(" DataID :" + dataID + ";");
//s_request.Headers.Add("Password:" + registerViewModel.ConfirmPassword + ";");
//4th try
//s_request.Headers.Add(" DataID ", dataID + ";");
//s_request.Headers.Add("Password", registerViewModel.ConfirmPassword + ";");
using (StreamWriter s_writer = new StreamWriter(s_request.GetRequestStream()))
{
s_writer.Write(s_RegJson); //s_RegJson is json obeject that i am sending
}
string rtnJson = "";
using (WebResponse s_response = s_request.GetResponse())
{
using (Stream s_stream = s_response.GetResponseStream())
{
using (StreamReader r_reader = new StreamReader(s_stream))
{
while (!r_reader.EndOfStream)
{
rtnJson += r_reader.ReadLine();
}
}
}
}
答案 0 :(得分:0)
您似乎没有发送application / json请求标头。试试这样:
var url = "http://myServiceCall_URL";
var serializer = new JavaScriptSerializer();
var request = WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers["DataID"] = "25";
request.Headers["Password"] = "t123456";
var requestJson = serializer.Serialize(new
{
Foo = "bar"
});
request.ContentLength = requestJson.Length;
using (var stream = request.GetRequestStream())
using (var writer = new StreamWriter(stream))
{
writer.Write(requestJson);
}
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
var responseJson = reader.ReadToEnd();
var responseObj = serializer.DeserializeObject(responseJson);
// do something with the response
}