3

我正在尝试创建一个 windows phone 应用程序,通过 webclient 使用 api 从服务器获取数据。它必须进行2个步骤:

  1. 使用公钥发送第一个请求以与服务器进行验证。响应包含消息,如果“有效密钥”,则会话在 15 分钟内创建。

{"code":200,"content":null,"message":"Valid key"} {"code":401,"content":null,"message":"Invalid key"}。

  1. 接下来,在收到“Valid key”消息后,将发送第二个请求以获取数据。

API 可在 PC 上的 Web 浏览器中正常工作

{ 代码:200,内容:空,消息:“有效密钥”}

{
code: 200,
content: {
topics: [
{
absViewUrl: "http://www.depvd.com/view/Chan-Dai-Xu-Han-Xinh-Ghe/TLcfZPtUUe",
absWidgetImage: "http://photo.depvd.com/13/317/08/ph_o1SJotZgie_OIusQYb2_wi.jpg",
commentsCount: 0,
likeCount: 0,
models: [
{
absModelUrl: "http://www.depvd.com/model/Choi-Byeol-Yee/2sj1OYbIsN",
name: "Choi Byeol Yee"
}
],
photos: [
{
absNormal: "http://photo.depvd.com/13/317/08/ph_o1SJotZgie_OIusQYb2_no.jpg"
}
],
title: "Chân dài xứ Hàn xinh ghê",
user: {
absUserUrl: "http://www.depvd.com/user/Takei-Emi/o1SJotZgie",
displayName: "Takei Emi"
},
viewCount: 17
},

但是当我在代码中使用 webclient 发送第二个请求时,总是响应消息“访问被拒绝”

 public void GetAlbum(int page)
        {

            string url = "http://open-api.depvd.com/Topic/GetNewTopics?page=1";
            WebClient webClient = new WebClient();            
            webClient.Headers["Accept"] = "application/json";
            webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(AlbumDownloaded);
            webClient.DownloadStringAsync(new Uri(url, UriKind.RelativeOrAbsolute));

        }

{"code":401,"content":null,"message":"拒绝访问"}

可能是windows phone 中的webclient 在第一次请求后没有保存seesion/cookies。

4

0 回答 0