2015-08-20 2 views
0

Может ли кто-нибудь помочь мне с curl и .NET? У меня есть красные основные части документации curl и некоторые темы на этом сервере, но до сих пор не знаю (как форматировать параметры данных, заголовки и т. Д.). Например, мне нужно отправить этот локон запрос: (gopay проект)Помощь со скручиванием и C# - базовый (проект GoPay)

curl -v https://testgw.gopay.cz/api/oauth2/token \ 
-X "POST" \ 
-H "Accept: application/json" \ 
-H "Content-Type: application/x-www-form-urlencoded" \ 
-u "<Client ID>:<Client Secret>" \ 
-d "grant_type=client_credentials&scope=payment-create" 

а позже что-то вроде этого (большие данные):

curl -v https://testgw.gopay.cz/api/payments/payment \ 
-X "POST" \ 
-H "Accept: application/json" \ 
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer xzZnu3YnAHRk298EwdettFQMcbCcvmwTKKfhrJx2aGG8ZnFyBJhAvFW547WVSD7p" \ 
-d '{ 
     "payer": { 
        "default_payment_instrument":"BANK_ACCOUNT", 
        "default_swift":"FIAFZPP", 
        "contact":{"first_name":"Petr1", 
          "last_name":"Pan" 
          } 
       }, 
     "amount":"100", 
     "items":[{"name":"item01","amount":"500"}, 
       {"name":"item02","amount":"500"} 
       ], 
     "callback":{ 
        "return_url":"http://www.eshop.cz/return", 
        "notification_url":"http://www.eshop.cz/notify" 
       } 
}' 

ответ

0

OK, рабочая exaple (первая часть):

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://testgw.gopay.cz/api/oauth2/token"); 
     request.Method = "POST"; 
     request.Accept = "application/json";    
     string credentials = String.Format("{0}:{1}", "testid", "testecret"); 
     byte[] bytes = System.Text.Encoding.ASCII.GetBytes(credentials); 
     string base64 = Convert.ToBase64String(bytes); 
     string authorization = String.Concat("basic ", base64); 
     request.Headers.Add("Authorization", authorization); 
     request.ContentType = "application/x-www-form-urlencoded"; 

     using (var streamWriter = new StreamWriter(request.GetRequestStream())) 
     { 
      string data = "grant_type=client_credentials&scope=payment-create"; 

      streamWriter.Write(data); 
     } 

     WebResponse wr = request.GetResponse(); 
     Stream receiveStream = wr.GetResponseStream(); 
     StreamReader reader = new StreamReader(receiveStream, System.Text.Encoding.UTF8); 
     string content = reader.ReadToEnd(); 
     var json = "[" + content + "]"; // change this to array 
     var objects = JArray.Parse(json); // parse as array 
     foreach (JObject o in objects.Children<JObject>()) 
     { 
      foreach (JProperty p in o.Properties()) 
      { 
       string name = p.Name; 
       string value = p.Value.ToString(); 
      } 
     } 
Смежные вопросы