2013-08-22 2 views
0

Когда дело доходит до веб-разработки, я знаю, что очень очень мало ...Создание HttpWebRequest из следующих приведенных данных POST

Я нашел некоторый код и объяснения со следующего сайта. https://dev.twitter.com/docs/auth/implementing-sign-twitter

В конечном счете, я хочу внедрить логин с твиттером. Но мне трудно переписывать эти веб-запросы POST в формате C# HttpWebRequest, который я могу повторно использовать в остальных наших приложениях. Если мы рассмотрим первый WebRequest сделал ...

POST /oauth/request_token HTTP/1.1 
User-Agent: themattharris' HTTP Client 
Host: api.twitter.com 
Accept: */* 
Authorization: 
    OAuth oauth_callback="http%3A%2F%2Flocalhost%2Fsign-in-with-twitter%2F", 
      oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w", 
      oauth_nonce="ea9ec8429b68d6b77cd5600adbbb0456", 
      oauth_signature="F1Li3tvehgcraF8DMJ7OyxO4w9Y%3D", 
      oauth_signature_method="HMAC-SHA1", 
      oauth_timestamp="1318467427", 
      oauth_version="1.0" 

Я хочу, чтобы превратить это в рабочую HttpWebRequest. До сих пор. Мой код выглядит следующим образом:

HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("https://api.twitter.com/oauth/request_token"); 

     ASCIIEncoding encoding = new ASCIIEncoding(); 

     httpReq.Method = "POST"; 
     httpReq.ContentType = "application/x-www-form-urlencoded"; 
     httpReq.Accept = "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

Это, к сожалению, как далеко я получил ... Я не знаю, как работают эти запросы. Мне нужно включить остальные данные и позвонить. Но я застрял. Любая помощь будет принята с благодарностью.

ответ

1

Попробуйте это:

ASCIIEncoding encoder = new ASCIIEncoding(); 
byte[] data = encoder.GetBytes(serializedObject); // the data you wanted to send 

HttpWebRequest request = new WebRequest.Create("https://api.twitter.com/oauth/request_token") as HttpWebRequest; 
request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
request.ContentLength = data.Length; 

request.GetRequestCode().Write(data, 0, data.Length); 

Также возможный Продублируйте (аналогичный вопрос): Why I get 411 Length required error?

Смежные вопросы