Выполнение запроса getAsync в Javascript для Windows Phone
Я пытаюсь сделать запрос к бэкэнд-API, который я создал в Google App Engine. Прямо сейчас это должно быть довольно просто, он отправляет URL, и должен быть возвращен JSON, который выглядит следующим образом {"keys": [5676073085829120]}. Я проверил API, делая запросы CURL, и 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);
});
};
Я попытался пошагово пройти код с помощью отладчика в visual studio. Он инициализирует переменные, и значение моей "полной" переменной является правильным URL-адресом, который я использовал для своих запросов cURL. Я установил точку останова внутри функции, которая должна происходить после завершения запроса, но код никогда не делает ее внутри этой функции, и в итоге эмулятор Windows Phone становится черным, и кажется, что он просто зависает, он не выходит, но доходит до того, что я уже не могу пройти. Я пытался и пытался, но я просто не могу понять это, и что еще хуже, документация для всего этого - мусор. Любая помощь будет принята с благодарностью. Заранее спасибо.
1 ответ
Это необходимо указать в содержании запроса. Чтобы указать тип содержимого запроса, вам необходимо использовать HttpRequestMessage
создать запрос, а затем указать тип носителя. Затем вам нужно использовать sendRequestAsync
метод HttpClient
обработать ваш запрос. Так что ваш код будет похож на следующий.
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(...);