2012-11-10 4 views
0

에서 게시 JSON 나는 다음과 같은 형식으로 JSON을 생산하고 서버에 게시하는 것을 시도하고있다 : 나는 ASIFormDataRequest를 사용하여 데이터를 게시하고지원되지 않는 미디어 유형의 오류 - 아이폰 앱

{ 
"items": [ 
{ 
    "id": "3", 
    "quantity": 0.5, 
    "unit": "2" 
} ] 
} 

.

<body> 
<h1>HTTP Status 415 - Unsupported Media Type</h1> 
<HR size="1" noshade="noshade"><p><b>type</b> 
Status report</p><p><b>message</b> 
<u>Unsupported Media Type</u></p> 
<p><b>description</b> <u>The server refused this request because the request entity is in a format not supported by the requested resource for the requested method (Unsupported Media Type).</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.23</h3> 
</body> 

내가 어떤 실수를 할 수있다 : 나는 요청 매개 변수

응답에서
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://api.esha.com/analysis?items=%@&apikey=%@",encodeJson,ApiKey]]; 
//here i have send escaped json (do I really need to do this thing?) 

_request = [ASIFormDataRequest requestWithURL:url]; 
[_request setPostValue:jsonString forKey:@"items"]; //original json string 
[_request setPostValue:ApiKey forKey:@"apikey"]; 
[_request setRequestMethod:@"POST"]; 
[_request addRequestHeader:@"Content-Type" value:@"application/json"]; 
[_request setDelegate:self]; 
_request.timeOutSeconds = 60.0; 
[_request startSynchronous]; 

, 나는 HTML 형식으로 "지원되지 않는 미디어 유형"오류를 얻고으로 URL에를 보내기 위해 JSON 문자열을 탈출 하기? 누군가 올바른 경로로 안내 할 수 있습니까? 감사.

답변

0

마침내 나는 스스로를 해결한다. 내 실수는 요청을 위해 URL에 json (인코딩 또는 내용)을 게시하려고 시도했지만 서버가 이러한 요청을 지원할 수있는 방법이 없을 수도 있다는 것이 었습니다. 또한 ASIHTTPRequest으로 시도했지만 ASIFormRequest가 작동하지 않는 이유를 모르겠습니다. 이제 나는 반응을 얻고있다.

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://api.esha.com/analysis?apikey=%@",ApiKey]]; 

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request addRequestHeader:@"Content-Type" value:@"application/json"]; 
[request setPostBody:(NSMutableData *)[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setDelegate:self]; 
[request startSynchronous]; 
:

그래서 나는 같은 코드 위에 변경