2017-01-30 1 views
0

나는 Postmarks 데이터를 설정 했는데도 C#에서 restsharp를 사용하는 Restapi를 보내고 "{\"ErrorCode \ ": 402, \"Message \ ": \"받은 JSON 입력이 잘못되었습니다. \ "} \"오류가 발생합니다. json 형식으로, 심지어 사용자 지정 json serialize 시도했다. 메신저가 제대로 매개 변수를 설정하는 경우 확실하지 않거나 심지어 이것이 최선의 방법은 내가 어떤 도움과 제안을 환영합니다 노력하고있어 달성하기 위해."{"ErrorCode ": 402, "Message ": "유효하지 않은 JSON 입력을 받았습니다. ""restsharp를 호출하여 Postmark에 전화를 걸 때

public void SendRest(string emailAddress, string subject, string body, params string[] recipients) 
    { 
     var recipientString = ""; 
     foreach (var recipient in recipients) 
     { 
      recipientString = recipientString + recipient + ','; 
     } 

     var client = new RestClient(); 
     client.BaseUrl = new Uri("https://api.postmarkapp.com/email"); 

     var request = new RestRequest(Method.POST); 
     request.RequestFormat = DataFormat.Json; 
     request.AddHeader("Content-Type", "application/json"); 
     request.AddHeader("Accept", "application/json"); 
     request.AddHeader("X-Postmark-Server-Token", "Valid-Token"); 

     request.AddParameter("From", "[email protected]"); 
     request.AddParameter("To", "[email protected]"); 
     request.AddParameter("Subject", "hi"); 
     request.AddParameter("TextBody", "this is a test"); 
     request.AddParameter("TrackOpens", true); 
     request.AddParameter("TrackLinks", "None"); 


     IRestResponse response = client.Execute(request); 
    } 

답변

0

당신은 (몸에) (연재) POST 매개 변수 나 GET 파라미터로, 나는 restsharp이 처리 않는 방법을 잘 모르겠습니다 중 하나의 매개 변수를 보내고있다.

그러나 POST 본문에 필요한 JSON을 보내지 않습니다.

내가 생각 같은 것을해야합니다

var params = JSON.Stringify(
    { 
     "From": "robin.windon...", 
     "To": "", 
     "Subject": "", 
     "TextBody": "", 
     "TrackOpens": "", 
     "TrackLinks": "" 
    } 
); 
request.AddParameter("application/json", params, ParameterType.RequestBody); 
+0

JSON.Stringify를()는 자바 스크립트에 객체 isentit입니다? 어떻게 C#으로 생각 하나? –

+0

아, 네, 자바 스크립트예요. C#에서 해당 기능에 대해 Google을 알려주세요. 잘 모르겠지만 쉽게 알 수 있습니다. – DanFromGermany

관련 문제