2012-02-03 5 views
2

RestSharp (Windows phone 7.1 클라이언트)에서 POST 요청을하고 있습니다. 요청 본문에서 문자열을 서비스로 보냈습니다. 서비스가 성공적으로 호출되었고 적절한 값 (정수)을 반환하는 것처럼 보입니다. 그러나 응답 객체는 null입니다.RestSharp를 사용하는 POST 요청에서 RestResponse가 null입니다.

client.ExecuteAsync<T>(request, (response) => { 
    data = response.Data; // response is null in debugger 
}); 

왜 그런지 이해할 수 없습니다.

+0

실제로 요청이 있었고 응답이 다시 돌아 왔는지 확인하기 위해 실제 요청 (Fiddler 또는 유사 사용)을 모니터링 했습니까? –

답변

0

<T>은 해당 호출에 유효한 값이 아닙니다. 비록 당신이 일반적인 방법으로 포장하지 않았다면 거기에 건설 될 지 확신 할 수 없습니다.

또한 응답이 일반 텍스트로 다시 전송됩니까? 반환 된 Content-Type은 무엇입니까? 대체로 ExecuteAsync(request, callback)을 generic 매개 변수없이 사용하고 response.Content (응답 본문 문자열)의 데이터를 가져와야합니다. response.Data은 비 직렬화 할 유형을 지정하는 일반 메소드 오버로드를 사용하는 경우 자동으로 비 직렬화 된 XML 또는 JSON (또는 사용자 정의) 응답을위한 것입니다.

+0

WP 용 RestSharp에는 Execute 메서드가 없습니다. 하지만 없이 client.ExecuteAsync로 변경했습니다. 응답 개체가 여전히 null이며 해당 속성에 액세스 할 수 없습니다. 웹 서비스는 응답 객체 (아마도 당신이 제안한 Content 프로퍼티를 통해)에서 가져와야하는 정수 값을 리턴한다. – Aliens

+0

죄송합니다. 잘못된 방법으로 참조하여 답변을 업데이트했습니다. –

+0

응답 객체가 null 인 경우 ErrorException에 아무 것도 있습니까? –

0

이것은 RestSharp 비동기 호출에서 계속되는 문제점 인 것 같습니다. HTTP 전송 오류입니다. ErrorException 객체는 쓸모가 없습니다 (null을 반환합니다). StatusCode 속성이 HttpStatusCode.OK 이외의 값을 반환하면 StatusCode 속성을 확인하십시오. StatusDescription은 서버 응답 페이로드의 전체 상태 메시지와 일치하지 않으므로 매우 유용하지 않습니다.

관련 문제