如何在HTTP标头中添加DataID和密码?

时间:2012-03-05 18:18:25

标签: .net asp.net-mvc-3 http c#-4.0 header

如何在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();
                        }
                    }
                }
            }

1 个答案:

答案 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
}