2016-02-27 62 views
1

我想將此jquery ajax調用轉換爲c#代碼。我可以知道如何轉換?如何將cquery中的jquery ajax調用#

$.ajax({ 
 
\t url: \t \t 'http://gothere.sg/maps/geo', 
 
\t dataType: \t 'jsonp', 
 
\t data: \t \t { 
 
\t \t 'output' \t : 'json', 
 
\t \t 'q' \t \t : address, 
 
\t \t 'client' \t : '', 
 
\t \t 'sensor' \t : false 
 
\t }, 
 
\t type: \t 'GET', 
 
\t success: function(data) { 
 
    \t \t \t \t 
 
\t }, 
 
\t statusCode: { 
 
\t \t 404: function() { 
 
\t \t \t alert('Page not found'); 
 
\t \t } 
 
\t }, 
 
});

我的C#代碼返回404如何在C#中指定數據類型和數據類型。 我可以知道如何在C#中傳遞這三個參數。

class Program 
{ 
    static void Main() 
    { 
     RunAsync().Wait(); 
    } 

    static async Task RunAsync() 
    { 

      // TODO - Send HTTP requests 
      var url = "http://gothere.sg/maps/geo"; 
      var dataType = "jsonp"; 
      var type = "GET"; 

      Console.WriteLine("Making API Call..."); 
      using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate })) 
      { 
       client.BaseAddress = new Uri(url); 

       HttpResponseMessage response = client.GetAsync("data?output=json&q=550238&client=''&sensor=false").Result; 
       response.EnsureSuccessStatusCode(); 
       string result = response.Content.ReadAsStringAsync().Result; 
       Console.WriteLine("Result: " + result); 
      } 
      Console.ReadLine(); 

    } 
} 

回答

0

嘗試增加callback=參數的URL。基本上你正在請求一個jsonp資源。

這樣的網址應該有回調參數

http://gothere.sg/maps/geo?callback=&output=json&q=dell&client=&sensor=false 

導航到這個網址,你可以看到結果,如果您刪除回調參數它不會工作。

+0

感謝Pavan,它像一個魅力工作。 –

+0

很高興幫助你@AlexAung –

0

你可能只需要在你的url上有一個斜線。否則,請求將http://gothere.sg/maps/geodata?output=...,你會得到一個404

所以將其更改爲

var url = "http://gothere.sg/maps/geo/"; 
+0

我試着用尾部斜線但仍然返回404.我可以使用$ .ajax獲取數據。謝謝 –

+0

好的,我只是在我的瀏覽器中嘗試了url http://gothere.sg/maps/geo/data?output=json&q=550238&client=''&sensor=false,得到了404,所以這不是一個有效的網址。 – JimG

+0

請看ajax代碼。它正在返回數據。問題是我不知道如何在C#中調用它。謝謝。 –