Выполнение запроса 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(...);
Другие вопросы по тегам