根据以下给定的POST数据生成HttpWebRequest

本文关键字:数据 POST HttpWebRequest | 更新日期: 2023-09-27 18:28:33

说到web开发,我所知甚少。。。

我从以下网站找到了一些代码和解释。https://dev.twitter.com/docs/auth/implementing-sign-twitter

最终,我想用twitter实现登录。但我在将这些POST web请求重写为c#HttpWebRequest格式时遇到了问题,我可以在其他应用程序中重用该格式。如果我们检查第一个网络请求。。。

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";

不幸的是,我走了这么远。。。我不知道这些请求是如何工作的。我需要包括其余的数据并打电话。但我被卡住了。如有任何帮助,我们将不胜感激。

根据以下给定的POST数据生成HttpWebRequest

试试这个:

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);

还有一个可能的重复(类似的问题):为什么我得到411长度要求的错误?