调用 Web 服务时出错,无法完成操作
Posted
技术标签:
【中文标题】调用 Web 服务时出错,无法完成操作【英文标题】:Error while calling web service, operation can not be completed 【发布时间】:2013-02-02 15:46:09 【问题描述】:我正在调用网络服务,我得到 0 个字节作为响应,并得到如下错误:
Error Domain=kCFErrorDomainCFNetwork Code=303 “操作无法完成。(kCFErrorDomainCFNetwork 错误 303。)” UserInfo=0xa9b8ef0 NSErrorFailingURLKey=http://quantuminfoways.com/crossfit_wodgenius/webservice/sync.php, NSErrorFailingURLStringKey=http://quantuminfoways.com/crossfit_wodgenius/webservice/sync.php
我将数据作为 sample link.
在数据中我传递了这个:
createwod =
deletedcreatewod = (
);
newcreatewod = (
);
;
favorite =
deletedfavorite = (
);
newfavorite = (
);
;
gym =
deletedgym = (
);
newgym = (
);
;
workoutlog =
deletedworkoutlog = (
);
deletedworkoutlogtime = (
);
newworkoutlog = (
);
;
谁能帮我解决一下?
谢谢
【问题讨论】:
what is kCFErrorDomainCFNetwork Code=303的可能重复 【参考方案1】:当您将 POST 方法调用为 GET 时出现错误“kcferrordomaincfnetwork error 303”的原因之一。
【讨论】:
【参考方案2】:303 错误是重定向错误。
您可能想查看使用 NSURLConnection 自动处理重定向: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/RequestChanges.html
如果您想手动处理,重定向 URL 位于响应的“位置”标头中。以下是在连接中获取它的方法:didReceiveResponse 委托方法。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
// ... if the response status is 303 ...
if ([response respondsToSelector:@selector(allHeaderFields)])
NSString* location = [[httpResponse allHeaderFields] valueForKey:@"Location"];
// do whatever with the redirect url
您也可以尝试对包含数据的 url 进行 urlEncoding。试试如果你只调用以下 URL 会发生什么:http://quantuminfoways.com/crossfit_wodgenius/webservice/sync.php?udid=123&new=yes&uid=45&data=%20%7B%20createwod%20=%20%7B%20deletedcreatewod%20=%20(%20);%20newcreatewod%20=%20(%20);%20%7D;%20favorite%20=%20%7B%20deletedfavorite%20=%20(%20);%20newfavorite%20=%20(%20);%20%7D;%20gym%20=%20%7B%20deletedgym%20=%20(%20);%20newgym%20=%20(%20);%20%7D;%20workoutlog%20=%20%7B%20deletedworkoutlog%20=%20(%20);%20deletedworkoutlogtime%20=%20(%20);%20newworkoutlog%20=%20(%20);%20%7D;%20%7D
【讨论】:
OP 收到kCFErrorDomainCFNetwork
类型的错误,这与 HTT 状态代码不同。错误 303 是 kCFErrorHTTPParseFailure
,这意味着客户端无法正确处理结果。
我在浏览器中得到了正确的结果。但不是在移动设备中。以上是关于调用 Web 服务时出错,无法完成操作的主要内容,如果未能解决你的问题,请参考以下文章
在搭项目时出错导致无法运行,可能是spring中要配置数据源的错但不能确定有高手解决下不胜感激报错如下: