2014-01-31 4 views
1

POST 메서드를 사용하여 서버에 데이터를 보내고 있습니다. 코드는 다음과 같습니다.서버에서 데이터를 가져 오는 중 오류가 발생했습니다.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"<myServer ip>"]]; 
[request setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPMethod:@"POST"]; 
NSString *stringData = @"Hello"; 
NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 
request.HTTPBody = requestBodyData; 
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
[conn start]; 

서버로부터 올바른 데이터를 수신하지 못했습니다. 수신을위한

코드는 다음과 같습니다 내가받을

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 

    NSLog(@"didFinishLoading Called"); 
    NSString* newStr = [[NSString alloc] initWithData:responseData 
               encoding:NSUTF8StringEncoding]; 
    NSLog(@"data received is = %@",newStr); 
} 

응답은 다음과 같습니다

<soapenv:Body> 
    <soapenv:Fault> 
     <faultcode xmlns:ns1="xml.apache.org/axis/">ns1:Client.NoSOAPAction</…; 
     <faultstring>no SOAPAction header!</faultstring> 
     <detail> 
+0

NSURLConnection의 대리자 메서드를 모두 게시 할 수 있습니까? – Ilario

+0

또한 newStr으로 인쇄되는 것이 무엇입니까? – Anil

+0

@Anil의 TIS는 내가 얻고 무엇을 : NS1 : Client.NoSOAPAction SOAPAction 헤더가 없습니다!

답변

2

당신은 그냥 임의의 문자열을 전송하여 SOAP 서비스를 테스트 할 수 없습니다. URL에서 SOAP 메시지를 수신 할 것으로 예상되는 서버를 가리키고 있다는 사실 만 입증하면됩니다. 서버 스펙을보고 송신 할 적절한 SOAP 페이로드를 작성해야합니다. 현재 내용을 stringData으로 대체해야합니다.

+0

괜찮습니까? 요점을 수락합니다. POST 데이터를 서버에 기록한 코드 스 니펫을 올바르게 말할 수 있습니까? SOAP 액션에 대한 값을 다음과 같이 설정해야합니까 : [요청 setValue : @ "application/xml; charset = utf-8"forHTTPHeaderField : @ "Content-Type"]; 실제로 나는 처음으로 서버를 다루고 있습니다. 유치한 질문은 죄송합니다. –

+0

코드는 일반적으로 정확합니다. 보내는 헤더 및 본문 내용은 서버 기대에 따라 다릅니다. 일반적으로'Content-Type' (XML 또는 SOAP XML)과'Content-Length'를 설정해야합니다. – Wain

관련 문제