在用于Windows Phone的Javascript中生成getAsync请求
我正在尝试向我在Google App Engine上创建的后端API发出请求。现在它应该非常简单,它发送URL,应该返回类似于{“keys”:[5676073085829120]}的JSON。我已经通过发出CURL请求测试了API,而URL是有效的,有一件事让我困惑,那就是当我发出CURL请求时,我必须指定“Accept:application/json”,但我不知道如何将其添加到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
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(...);
我回顾了文档并添加了错误处理,但是没有输出错误代码,只是挂起了。