c#
  • .net
  • curl
  • 2017-08-11 60 views 0 likes 
    0

    我有從捲曲 得到結果,但是當我嘗試調用C#的功能我從來沒有像PHP結果卻如何讓捲曲結果在C#

    這是在PHP代碼PHP中的示例代碼

    $url = "http://localhost/ws/init.php"; 
    $ch=curl_init(); 
    
    curl_setopt($ch, CURLOPT_POST ,1); 
    
    $header=array(); 
    $header[]='Content-Type: application/json'; 
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header); 
    
    
    $data = json_encode($data); 
    
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data); 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    $result=curl_exec($ch); 
    curl_close($ch); 
    return $result; 
    

    這是從PHP結果

    {"error_code":"0","error_desc":"","data":{"token":"xyx"}} 
    

    我嘗試使用libcurl.net,HttpClient的,WebRequest的,和Web客戶端爲獲得像PHP代碼結果卻 但直到現在我還是運氣不好 也許有人可以幫我解決這個問題?

    我很感激與UR幫助傢伙

    感謝您

    +0

    [製作在C#中的捲曲電話]的可能的複製( https://stackoverflow.com/questions/7929013/making-a-curl-call-in-c-sharp) – chrisis

    回答

    0

    您可以使用RestSharp

    例如:

    var client = new RestClient("http://localhost/ws/init.php"); 
    var request = new RestRequest("", Method.POST); 
    var yourobject = new RequestObject(){....}; 
    var json = request.JsonSerializer.Serialize(yourobject);  
    request.AddParameter("application/json; charset=utf-8", json, ParameterType.RequestBody); 
    
    var myResponseData = client.Execute<MyResponseObject>(request); 
    

    應答對象

    public class DataObject 
    { 
        public string token { get; set; } 
    } 
    
    public class MyResponseObject 
    { 
        public string error_code { get; set; } 
        public string error_desc { get; set; } 
        public DataObject data { get; set; } 
    } 
    
    0

    之前,您可以使用的HttpClient進行此操作。您可以使用類似的東西

    public async Task<JsonObject> GetAsync(string uri) 
        { 
         var httpClient = new HttpClient(); 
         var content = await httpClient.GetStringAsync(uri); 
         return await Task.Run(() => JsonObject.Parse(content)); 
        } 
    
    +0

    謝謝你fo r回覆..問題是我需要發佈json數據到url並得到結果..我嘗試這段代碼,但似乎卡在HttpResponseMessage HttpClient客戶端=新HttpClient(); HttpResponseMessage response = await client.PostAsJsonAsync(url,json); ; string responseBody = await response.Content.ReadAsStringAsync(); return responseBody; – KuroHito

    相關問題