2017-11-02 9 views
0

매개 변수와 함께 요청을 보내는 데 문제가 있습니다. 나는 PHP에서 요청을 전송의 예를 가지고,하지만 난 어떻게 RestSharp처럼 보일 것입니다, 알아낼 수 없습니다 : 당신이 볼 수 있듯이RestSharp - 매개 변수를 사용하여 GET 요청

enter image description here

이 예에서 매개 변수는 개인 키에 추가됩니다 (나는 또한 해냈습니다) 그리고 나서 CURLOPT_POSTFIELDS도 있습니다. params가 추가되었습니다. AddParameter, AddBody, AddJsonBody로 작업을 시도했지만 아무런 효과가 없습니다. 개인 키에 매개 변수가 연결되어 있으면 응답은 항상 비어 있습니다. 응답을 받으면 매개 변수가 무시됩니다.

 string data = "{\"Paging\":{\"per_page\":\"" + 10 + "\"}}"; 

     RestClient client = new RestClient("api"); 

     string header = "WMS " + publicKey + ":" + GetMd5Hash(privateKey + data); 

     IRestRequest request = new RestRequest("products", Method.GET); 
     request.AddHeader("Content-Type", "application/json; charset=utf-8"); 
     request.AddHeader("Authorization", header); 
     request.AddHeader("Content-Length", data.Length.ToString()); 

     //request.RequestFormat = RestSharp.DataFormat.Json; 
     request.AddParameter("Paging", new { per_page = 10 }); 

     IRestResponse response = client.Execute(request); 

     Encoding encoding = Encoding.GetEncoding("utf-8"); 
     var result = encoding.GetString(response.RawBytes); 

내가 피들러와 원시 요청과 함께 PHP 요청을 추적 할 수 있었다 그런 모습 :

 
GET api HTTP/1.1 
Host: api 
Pragma: no-cache 
Accept: */* 
Authorization: WMS md5 
Content-type: application/json 
Content-Length: 27 

{"Paging":{"per_page":"8"}} 

을 그리고 광산은 다음과 같습니다

 
GET api HTTP/1.1 
Authorization: WMS md5 
Content-Type: application/json 
Accept: */* 
User-Agent: RestSharp/105.2.3.0 
Host: api 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 

매개 변수가 표시되지 않습니다 왜 그럴지 모르겠다. 모든 매개 변수 유형을 시도했습니다. 그 외에도 내 머리글 "Content-Length"는 보이지 않습니다. GET 요청에 매개 변수를 추가

+1

[Fiddler] (https://www.telerik.com/fiddler)를 사용하여 실제 요청을 기록하십시오. –

+0

Fiddler가이 요청을 등록하지 않았습니다./ – Dess

+0

내 질문을 업데이트하여 추적 할 수있었습니다. – Dess

답변

0

, 단지 사용하여 수행됩니다 :

request.AddParameter("name", "value"); 

나는 당신이 아마 JSON 형식을 혼합, 코드에서 다른 문제가 있지만, 생각하는 우리는 실제 당신의 세부 사항을 가지고 있지 않는 한 당신이 소비하고있는 API는 우리가 그것에 대한 조언을 할 수 있습니다.

예제를 단순화하고 테스트 한 다음 오류를 표시하는 API를 추가 할 수 있습니다. 기본 예제는 여기에서 확인하십시오. https://github.com/restsharp/RestSharp

+0

내가 시도한 첫 번째 작업 이었지만 작동하지 않았습니다. – Dess