오늘 저는이 작업을 몇 시간 동안 진행했으며 해결책을 찾지 못했습니다.하지만이 문제를 해결 한 사람의 도움이 필요합니다. iPhone에서 웹 서비스에 이미지를 게시하려고합니다. 먼저 코드를 게시하고 내가 시도한 모든 것을 설명해 드리겠습니다.iPhone UIImage가 웹 서비스에 업로드
NSData *imageData = UIImageJPEGRepresentation(barCodePic, .9);
NSString *soapMsg =
[NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><WriteImage xmlns=\"http://myserver/imagewebservice/\"><ImgIn>%@</ImgIn></WriteImage></soap:Body></soap:Envelope>", [NSData dataWithData:imageData]
];
NSURL *url = [NSURL URLWithString:@"http://myserver/imagewebservice/service1.asmx"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength =
[NSString stringWithFormat:@"%d", [soapMsg length]];
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://myserver/imagewebservice/WriteImage" forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
우선이 코드는 이미지 외에는 아무 문제가 없습니다. 웹 서비스가 로컬 네트워크에서 실행 중이고 원하는대로 소스 코드를 변경할 수 있습니다. "ImgIn"매개 변수를 문자열로 변경하고 문자열을 전달하면 모든 것이 제대로 작동하므로 반환 값은 아무 문제가 없습니다. 따라서 연결 문제가 전혀 발생하지 않으며이 서버에서이 웹 서비스의 데이터를 호출하고 얻을 수 있습니다. 하지만 ImgIn 매개 변수를 통해이 웹 서비스에 이미지를 업로드해야하므로 위의 코드가 지금까지 내 최선의 결과입니다. 나는 또한 didReceiveResponse, didReceiveData, didFailWithError 등을 모두 처리했다. 위 코드는 매번 didRecieveResponse를 해제합니다. 그러나 didReceiveData는 결코 해고되지 않으며 웹 서비스 자체가 결코 실행되지 않는 것처럼 보입니다. 웹 서비스 자체를 디버깅 할 때 문자열 매개 변수를 사용하면 실행되고 디버그가 잘되지만 이미지 매개 변수를 사용하면 호출 할 때 디버깅조차하지 못합니다. 그것은 ImgIn 매개 변수가 너무 길어서 (화면에 출력 할 때 거대합니다.) 웹 서비스가 막 대단히 복잡합니다. 이 방법을 사용할 때 Base64로 인코딩해야한다는 내용을 읽었지만 어떻게 완료되었는지에 대한 좋은 링크를 찾을 수 없습니다. 그것이 내가 잘못하고있는 것이라면, "Base64를 사용해야합니다"가 아니라, 이것을 수행하는 방법에 관한 코드를 제공해 주실 수 있습니까? 정말로 이걸 어떻게 구현할 것인가? 예. 그것 이외에, 나는 잃어버린 것 같아, 나는 다른 모든 일을 올바르게하고있는 것처럼 보인다. 도와주세요!
감사
위대한 작품. 웹 서비스를 포기하고 웹 페이지에 게시해야했습니다. 도움에 감사드립니다. – AS2012
@tc. : Ca 당신이 답변 한이 업로드 방법에 대한 코드를 게시하십시오. – Nit