Как добавить DataID и пароль в заголовок HTTP? - PullRequest
0 голосов
/ 05 марта 2012

Как я могу добавить DataID и пароль в заголовке HTTP.что-то подобное показано ниже?

POST / serviceCall / HTTP / 1.1Host myHostКонтент-длина 459Происхождение chrome-extension: // cokgbflfommojglbmbpenpphppikmonn DataID 25Пароль t123456 Пользователь-агент Mozilla / 5.0Приложение Content-Type / JSONПринять / Accept-Encoding gzip, deflate, sdchAccept-Language en-US, en; q = 0,8Accept-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 голосов
/ 05 марта 2012

Вы, похоже, не отправляете заголовок запроса 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...