2011-10-13 14 views
8

प्राप्त करने के तरीके को कैसे बदलें, यह ठीक काम करता है।NSURLRequest: httpMethod "GET" को "POST"

यूआरएल: http://myurl.com/test.html?query=id=123&name=kkk


मैं POST पद्धति की अवधारणाओं जरूरत नहीं है। क्रिप्या मेरि सहायता करे।

मैं POST विधि के लिए GET विधि कैसे प्राप्त कर सकता हूं?


यूआरएल: http://testurl.com/test.html

[urlRequest setHTTPMethod:@"POST"];

+0

http://stackoverflow.com/questions/787582/nsurlrequest-encode- पर एक नजर डालें कोशिश url-for-nsurlrequest-post-body-iphone-purpose-c – lluismontero

उत्तर

20

इस

NSString *post = [NSString stringWithFormat:@"username=%@&password=%@",username.text,password.text]; 
NSLog(@"%@",post); 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@" server link here"]]]; 
[request setHTTPMethod:@"POST"]; 
NSString *json = @"{}"; 
NSMutableData *body = [[NSMutableData alloc] init]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"]; 
[request setHTTPBody:postData]; 
//get response 
NSHTTPURLResponse* urlResponse = nil; 
NSError *error = [[NSError alloc] init]; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; 
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
NSLog(@"Response Code: %d", [urlResponse statusCode]); 

if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) 
{ 
    NSLog(@"Response: %@", result); 
} 
+1

अपडेट किया है शायद आप उस '[अनुरोध setHTTPBody:' वहां से हटाना चाहते हैं। –

+0

{[अनुरोध सेट एचटीटीपीएम विधि: @ "पोस्ट"]; } एक त्रुटि देता है: - HTTPMethod को मान असाइन नहीं कर सकता है, इसकी एकमात्र संपत्ति है। क्या आप मेरी मदद कर सकते हैं? – Aashish

6
// create mutable request 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
// set GET or POST method 
[request setHTTPMethod:@"POST"]; 
// adding keys with values 
NSString *post = @"query=id=123&name=kkk"; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 
[request addValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setHTTPBody:postData]; 
+0

मुझे लगता है कि वह पूछ रहा है कि तर्क कैसे भेजना है ... – lluismontero

+0

ने मेरा उत्तर – Nekto

संबंधित मुद्दे