Использование LibCurlNet для выполнения аутентифицированного http-запроса на получение от json rest API - PullRequest
0 голосов
/ 18 июня 2011

запросов cURL, веб-запросов или любого другого метода потребления:

Маленькие желтые птички летают вокруг моей головы, поскольку я никогда не использовал cURL с asp.net;то, чего я пытаюсь достичь (надеюсь, это также разумно), это использовать LibCurlNet dlls , чтобы сделать простой запрос на получение Police API , используя мойимя пользователя и пароль.

При этом каждый запрос должен содержать имя пользователя и пароль API.Пример с Curl:

curl -u username:password http://policeapi2.rkh.co.uk/api/forces

API реализован как стандартный веб-сервис JSON REST с использованием HTTP-запросов GET.

Я надеюсь, что класс ac # похож на веб-метод вчтобы сделать вызов ajax с использованием jquery для извлечения информации из API.

Я знаю, как создавать веб-методы, но не знаю, как объединить это с LibCurlNet.

Единственная причина, по которой я болтаю о LibCurlNet, заключается не в том, что я влюблен в нее, поэтому, если вы считаете, что мне следует использовать другой метод для получения данных из этого API, пожалуйста, дайте это сделать.

Пожалуйста, дайте мне знать, если я могу предоставить что-нибудь, чтобы сделать это более ясным.

Большое спасибо

1 Ответ

0 голосов
/ 19 июня 2011
public const String LocalCrime = http://policeapi2.rkh.co.uk/api/leicestershire/C01/crime";

[WebMethod(true)]
public static String request()
{
    // Initialize the WebRequest.
    WebRequest myRequest = WebRequest.Create(LocalCrime);

    myRequest.ContentType = "application/x-www-form-urlencoded";
    myRequest.Credentials = new NetworkCredential("username", "password");
    // Return the response. 
    WebResponse myResponse = myRequest.GetResponse();
    StringBuilder _Content = new StringBuilder();
    using (StreamReader _Reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8))
    {
        _Content.Append(_Reader.ReadToEnd());
    }
    // Code to use the WebResponse goes here.

    // Close the response to free resources.
    myResponse.Close();
    return _Content.ToString();
}

со скриптом:

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "police/crimerequest.aspx/request",
    dataType: "json",
    // success: insertCallback 
    success: function (data) {
        $('#requestResult').append(data.d);
    },
    error: function () {
        alert('Sorry there was an error, try again!');
        return false;
    }
});
...