开发者

ASIFormDataRequest NSInvalidArgumentException

I'm trying to use ASIFormDataRequest with the following code:

NSURL *url = [NSURL URLWithString: urlString];
ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addPostValue:@"json" forKey:@"json"];
[request setDelegate:self];
[request startAsynchronous];

The code keeps crashing at the [request addPostValue:@"json" forKey:@"json"]; line. I've also tried setPostValue:forKey: with the same result. If I comment out the addPostValue:forKey: line, the request goes through (I can see it on the server), but of course there is no json data.

I've simplified the problem down by passing in the string json for the value. That will actually be my json formatted string once I figure out this problem.

Here's the stack trace:

2011-06-28 08:49:29.344 Gleek[26170:207] *** Terminating app due to uncaught     exception     'NSInvalidArgumentException', reason: '-[ASIHTTPRequest addPostValue:forKey:]: unrecog开发者_JS百科nized     selector sent to instance 0x5024400'
*** Call stack at first throw:
(
0   CoreFoundation                      0x010f85a9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x0124c313 objc_exception_throw + 44
2   CoreFoundation                      0x010fa0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3   CoreFoundation                      0x01069966 ___forwarding___ + 966
4   CoreFoundation                      0x01069522 _CF_forwarding_prep_0 + 50
5   Gleek                               0x00006bab -[ProcedureDefDetailViewController toggleCompletedStatus:] + 1451
6   UIKit                               0x005e44fd -[UIApplication sendAction:to:from:forEvent:] + 119
7   UIKit                               0x00674799 -[UIControl sendAction:to:forEvent:] + 67
8   UIKit                               0x00676c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
9   UIKit                               0x006757d8 -[UIControl touchesEnded:withEvent:] + 458
10  UIKit                               0x00608ded -[UIWindow _sendTouchesForEvent:] + 567
11  UIKit                               0x005e9c37 -[UIApplication sendEvent:] + 447
12  UIKit                               0x005eef2e _UIApplicationHandleEvent + 7576
13  GraphicsServices                    0x018b6992 PurpleEventCallback + 1550
14  CoreFoundation                      0x010d9944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
15  CoreFoundation                      0x01039cf7 __CFRunLoopDoSource1 + 215
16  CoreFoundation                      0x01036f83 __CFRunLoopRun + 979
17  CoreFoundation                      0x01036840 CFRunLoopRunSpecific + 208
18  CoreFoundation                      0x01036761 CFRunLoopRunInMode + 97
19  GraphicsServices                    0x018b51c4 GSEventRunModal + 217
20  GraphicsServices                    0x018b5289 GSEventRun + 115
21  UIKit                               0x005f2c93 UIApplicationMain + 1160
22  Gleek                               0x00002a09 main + 121
23  Gleek                               0x00002985 start + 53
24  ???                                 0x00000001 0x0 + 1
)

Thanks


The answer is simple, you have to use:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

And you are using,

ASIFormDataRequest *request = [ASIHTTPRequest requestWithURL:url];

just change that, and it will work.

Always make sure you are initializing your objects with the correct Class consturctor.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜