我想发布到谷歌这样我就可以登录谷歌阅读器并下载订阅列表,但我无法找到一种方法在Windows 7手机上发布谷歌sdk,有没有人有一个如何做的例子此?
*编辑:对不起我不是很清楚我正在尝试使用POST方法,提交电子邮件和密码进行谷歌登录并检索sid。我使用过WebClient和HttpWebRequest,但是我看到的所有示例都发送了post数据,api调用不在windows 7 phone sdk中。
答案 0 :(得分:18)
我对您尝试使用的Google API一无所知,但如果您只需要发送POST请求,那么您当然可以使用WebClient
或HttpWebRequest
执行此操作。使用WebClient
,您可以使用WebClient.OpenWriteAsync()
或WebClient.UploadStringAsync()
,文档位于:http://msdn.microsoft.com/en-us/library/tt0f69eh%28v=VS.95%29.aspx
使用HttpWebRequest
,您需要将Method
属性设置为"POST"
。这是一个基本的例子:
var request = WebRequest.Create(new Uri(/* your_google_url */)) as HttpWebRequest;
request.Method = "POST";
request.BeginGetRequestStream(ar =>
{
var requestStream = request.EndGetRequestStream(ar);
using (var sw = new StreamWriter(requestStream))
{
// Write the body of your request here
}
request.BeginGetResponse(a =>
{
var response = request.EndGetResponse(a);
var responseStream = response.GetResponseStream();
using (var sr = new StreamReader(responseStream))
{
// Parse the response message here
}
}, null);
}, null);
WebClient
类可能更容易使用,但可定制性较差。例如,我没有看到能够将Cookie附加到WebClient
个请求的方法,或者在使用WebClient
时设置Content-Type标头的方法。
答案 1 :(得分:3)
不确定您已经使用过什么,但是您尝试过WebClient吗?
WebClient web = new WebClient();
web.DownloadStringCompleted += (s, e) =>
{
if (e.Error == null)
CodeHereToHandleSuccess();
else
CodeHereToHandleError(e.Error);
};
web.DownloadStringAsync(new Uri(theURLYoureTryingToUse));
还有WebRequest也可以查看,这可能对你正在做的事情有用。
编辑:对于您的“POST”编辑,webclient允许您发布:
web.OpenWriteAsync(new Uri(theURLYoureTryingToUse), "POST");
然后你还必须添加一个OpenWriteCompleted处理程序。
不确定您正在做什么,因此您需要在问题中添加更多信息。
答案 2 :(得分:3)
您是否尝试将RESTSharp用于Windows Phone 7项目?最新版本支持Windows Phone 7,我使用流行的REST API时没有遇到任何问题。在您尝试使用Google阅读器API的特定情况下,Luke Lowry的this article可能会有所帮助。