Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在用于Windows Phone的Javascript中生成getAsync请求_Javascript_Visual Studio_Windows Phone 8.1_Winjs_Getasync - Fatal编程技术网

在用于Windows Phone的Javascript中生成getAsync请求

在用于Windows Phone的Javascript中生成getAsync请求,javascript,visual-studio,windows-phone-8.1,winjs,getasync,Javascript,Visual Studio,Windows Phone 8.1,Winjs,Getasync,我正在尝试向我在Google App Engine上创建的后端API发出请求。现在它应该非常简单,它发送URL,应该返回类似于{“keys”:[5676073085829120]}的JSON。我已经通过发出CURL请求测试了API,而URL是有效的,有一件事让我困惑,那就是当我发出CURL请求时,我必须指定“Accept:application/json”,但我不知道如何将其添加到getAsync请求中。以下是相关代码: function verify(){ var uname = do

我正在尝试向我在Google App Engine上创建的后端API发出请求。现在它应该非常简单,它发送URL,应该返回类似于{“keys”:[5676073085829120]}的JSON。我已经通过发出CURL请求测试了API,而URL是有效的,有一件事让我困惑,那就是当我发出CURL请求时,我必须指定“Accept:application/json”,但我不知道如何将其添加到getAsync请求中。以下是相关代码:

function verify(){
    var uname = document.getElementById("username").value;
    var pword = document.getElementById("password").value;

    var c = new Windows.Web.Http.HttpClient();
    var complete = "http://golden-bonsai-124817.appspot.com/users/" + uname + "/" + pword;

    c.getAsync(new Windows.Foundation.Uri(complete)).done(function (result) {
    var jsonResult = JSON.parse(result.content.toString());
    var key = jsonResult.Results.series[0].data;
    console.log("in here");
    var authKey = new Array();
    key.forEach(function (cur, i, arr) {
        authKey.push(cur.keys);
    });
};

我尝试在VisualStudio中使用调试器单步执行代码。它初始化变量,“complete”变量的值是我用于cURL请求的正确URL。我在函数内部设置了一个断点,该断点应该在请求完成后发生,但代码从未进入该函数内部,最终windows phone emulator变为黑色,它似乎只是挂起,没有退出,但它到达了一个我无法再进行的点。我一直在尝试,但我就是想不出来,更糟糕的是,所有这些东西的文档都是垃圾。任何帮助都将不胜感激。提前感谢。

需要在请求内容中指定。要指定请求的内容类型,需要使用
HttpRequestMessage
创建请求,然后指定媒体类型。然后需要使用
HttpClient
sendRequestAsync
方法来处理请求。因此,您的代码将类似于以下内容

var hc = new Windows.Web.Http.HttpClient();
var uri = new Windows.Foundation.Uri("http://golden-bonsai-124817.appspot.com/users/" + uname + "/" + pword);
var request = new Windows.Web.Http.HttpRequestMessage(Windows.Web.Http.HttpMethod.get, uri);
var content = "";
var encoding = Windows.Storage.Streams.UnicodeEncoding.utf8;
var mediaType = "application/json";
request.content = new Windows.Web.Http.HttpStringContent(content, encoding, mediaType);
hc.sendRequestAsync(request).then(...);

我回顾了文档并添加了错误处理,但是没有输出错误代码,只是挂起了。