现在我一直在尝试Launchpad's API
使用 C#.NET 或 Mono 来编写一个小的包装器。根据OAuth
,我首先需要签署请求,并且Launchpad 有它自己的方式。
我需要做的是使用一些必要的HTTP标头(例如Content-type
. 在 python 中,我有 urllib2,但是当我浏览 System.Net 命名空间时,它让我大吃一惊。我无法理解如何开始。我是否可以使用WebRequest
,HttpWebRequest
或WebClient
. 使用 WebClient 我什至会收到证书错误,因为它们没有被添加为受信任的错误。
从 API Docs 中,它说三个密钥需要通过POST
- auth_consumer_key:您的消费者密钥
- oauth_signature_method:字符串“PLAINTEXT”
- oauth_signature:字符串“&”。
因此 HTTP 请求可能如下所示:
POST /+request-token HTTP/1.1
Host: edge.launchpad.net
Content-type: application/x-www-form-urlencoded
oauth_consumer_key=just+testing&oauth_signature_method=PLAINTEXT&oauth_signature=%26
响应应如下所示:
200 OK
oauth_token=9kDgVhXlcVn52HGgCWxq&oauth_token_secret=jMth55Zn3pbkPGNht450XHNcHVGTJm9Cqf5ww5HlfxfhEEPKFflMqCXHNVWnj2sWgdPjqDJNRDFlt92f
我多次更改了我的代码,最后我能得到类似的东西
HttpWebRequest clnt = HttpWebRequest.Create(baseAddress) as HttpWebRequest;
// Set the content type
clnt.ContentType = "application/x-www-form-urlencoded";
clnt.Method = "POST";
string[] listOfData ={
"oauth_consumer_key="+oauth_consumer_key,
"oauth_signature="+oauth_signature,
"oauth_signature_method"+oauth_signature_method
};
string postData = string.Join("&",listOfData);
byte[] dataBytes= Encoding.ASCII.GetBytes(postData);
Stream newStream = clnt.GetRequestStream();
newStream.Write(dataBytes,0,dataBytes.Length);
我该如何进一步进行?我应该对 Read 进行调用clnt
吗?
为什么 .NET 开发人员不能创建一个我们可以用来读写的类,而不是创建数百个类并让每个新手感到困惑。