我的代码如下
+ (void) get:(NSString *)url parameters:(NSDictionary *)params success:(void (^)(id responseObj))success failure:(void (^)(NSError *error))failure; { //获得请求管理者 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer];//请求 manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithArray:@[@"text/html",@"text/plain"]]; [manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"%@", operation.request.URL); success(responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // NSLog(@"operation: %@" , operation.responseString ); failure(error); }]; }
返回的错误信息是:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x7fcad2a51c30 {NSDebugDescription=Invalid value around character 0., NSUnderlyingError=0x7fcad2aadca0 "Request failed: internal server error (500)"}
我用operation.responseString打印的结果如下:
operation:Apache Tomcat/6.0.37 - Error report HTTP Status 500 - java.lang.NoSuchMethodException: com.kdtech.action.BusinessAction.myTask(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
type Exception report
message java.lang.NoSuchMethodException: com.kdtech.action.BusinessAction.myTask(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.NoSuchMethodException: com.kdtech.action.BusinessAction.myTask(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)root cause
java.lang.NoSuchMethodException: com.kdtech.action.BusinessAction.myTask(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) java.lang.Class.getMethod(Class.java:1665) org.apache.struts.actions.DispatchAction.getMethod(DispatchAction.java:322) org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:262) org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs.
Apache Tomcat/6.0.37
实在是找不到原因了,求各位大大答疑解惑!!
请求头信息很多的,既然自定义就要写全,不然就用默认的不要自定义。还有接受返回数据的格式用回默认的吧。最后Block可能为空,加个条件判断会更好。