我需要发布到期望xml数据和图像的Web服务器。 Post请求是一个多个表单。经过一些研究,似乎大多数人都在推荐ASIHTTPRequest
。所以我已将此添加到我的项目中但仍无法与服务器通信。我得到一个401 error
我认为当服务器没有得到预期的时候会返回。 (我知道错误处理不是最好的,但我必须继续)。所以我创建了我的ASIHTTPRequest
对象并使用appendPostData
和appendPostDataFromFile
方法尝试发布xml和图像,但没有运气。
以下是一些代码:
NSMutableData *temp = [[NSMutableData alloc]init];
[temp appendData: [[NSString stringWithFormat: @"<MobileRequest>"] dataUsingEncoding: NSUTF8StringEncoding]];
[temp appendData: [[NSString stringWithFormat: @"<userTokenId>%@</userTokenId>", @"myUserToken"] dataUsingEncoding: NSUTF8StringEncoding]];
[temp appendData: [[NSString stringWithFormat: @"<applicationTokenId>%@</applicationTokenId>", @"myAppId"] dataUsingEncoding: NSUTF8StringEncoding]];
[temp appendData: [[NSString stringWithFormat: @"<item>%@</item>", @"some item string"] dataUsingEncoding: NSUTF8StringEncoding]];
[temp appendData: [[NSString stringWithFormat: @"<attachmentFileName>%@</attachmentFileName>", @"image.png"] dataUsingEncoding: NSUTF8StringEncoding]];
[temp appendData: [[NSString stringWithFormat: @"</MobileRequest>"] dataUsingEncoding: NSUTF8StringEncoding]];
NSOperationQueue *queue = [(AppDelegate *)[[UIApplication sharedApplication]delegate]operationQueue];
NSURL *url = [NSURL URLWithString:@"http://myUrl/Request/"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addRequestHeader:@"Content-Type" value:@"text/xml"];
[request appendPostData:temp];
[request appendPostDataFromFile:imageUrlString];
[request setPostBody:temp];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[queue addOperation:request];
我在requestWentWrong
收到回调,错误是401 Authorization required
......我认为这不是真正的问题。
任何人都可以指出有用的方向或告诉我我做错了什么吗?
任何想法都会非常感激。