दिलचस्प पोस्ट
मैं डेल्फी दस्तावेज़ीकरण के लिए कैसे खोज सकता / सकती हूं? Ggplot2 का उपयोग कर, क्या मैं अक्ष में एक ब्रेक सम्मिलित कर सकता हूँ? जावा में कर्ल का उपयोग कैसे करें? java.net.SocketException: कनेक्शन रीसेट करें फाइनल बनाम डिस्पोज़ करें NSURL सत्र के माध्यम से पोस्ट अनुरोध भेजें टेक्स्ट संपादित करें फ़ील्ड का मूल्य प्राप्त करें libc ++ abi.dylib: प्रकार NSException (lldb) के बिना अपवाद के साथ समाप्त पायथन में एकल उद्धरण बनाम दोहरे उद्धरण जेडीबीसी के साथ बैच इन्टरेट करने के लिए कुशल तरीके से इनलाइन शैलियों के साथ सीएसएस छद्म वर्ग स्मृति / संसाधन लीक को खोजने के लिए कौन से एंड्रॉइड टूल और तरीके सर्वश्रेष्ठ काम करते हैं? क्यों प्रतिक्रिया। रीडायरेक्ट सिस्टम का कारण होता है। थ्रेडिंग। थ्रेड एडोबेशन? डिफ़ॉल्ट रूप से सबमिट किए गए HTML फ़ॉर्म पर बटन कैसे सबमिट करें? MySQL / नियमित एक्सप्रेशन रेप्डेर में शब्द कैसे गिनें?

IOS पर एक HTTP पोस्ट अनुरोध भेजा जा रहा है

मैं आईओएस आवेदन के साथ एक एचटीटीपी पोस्ट भेजने की कोशिश कर रहा हूं, जिसे मैं विकसित कर रहा हूं, लेकिन पुश कभी भी सर्वर तक नहीं पहुंचता है, हालांकि मुझे जवाब के रूप में कोड 200 (यूआरएल कनेक्शन से) मिलता है। मुझे सर्वर से कोई प्रतिक्रिया नहीं मिली और न ही सर्वर ने मेरी पोस्ट का पता लगाया (सर्वर एंड्रॉइड से आने वाले पदों का पता लगाता है)

मैं एआरसी का इस्तेमाल करता हूं लेकिन पीडी और यूआरएल कनेक्शन को मजबूत बना दिया है।

अनुरोध भेजने के लिए यह मेरा कोड है

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",dk.baseURL,@"daantest"]]]; [request setHTTPMethod:@"POST"]; [request setValue:@"text/xml" forHTTPHeaderField:@"Content-type"]; NSString *sendString = @"<data><item>Item 1</item><item>Item 2</item></data>"; [request setValue:[NSString stringWithFormat:@"%d", [sendString length]] forHTTPHeaderField:@"Content-length"]; [request setHTTPBody:[sendString dataUsingEncoding:NSUTF8StringEncoding]]; PushDelegate *pushd = [[PushDelegate alloc] init]; pd = pushd; urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:pd]; [urlConnection start]; 

यह प्रतिनिधि के लिए मेरा कोड है

 #import "PushDelegate.h" @implementation PushDelegate @synthesize data; -(id) init { if(self = [super init]) { data = [[NSMutableData alloc]init]; [data setLength:0]; } return self; } - (void)connection:(NSURLConnection *)connection didWriteData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten { NSLog(@"didwriteData push"); } - (void)connectionDidResumeDownloading:(NSURLConnection *)connection totalBytesWritten:(long long)totalBytesWritten expectedTotalBytes:(long long)expectedTotalBytes { NSLog(@"connectionDidResumeDownloading push"); } - (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL { NSLog(@"didfinish push @push %@",data); } - (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite { NSLog(@"did send body"); } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [self.data setLength:0]; NSHTTPURLResponse *resp= (NSHTTPURLResponse *) response; NSLog(@"got response with status @push %d",[resp statusCode]); } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d { [self.data appendData:d]; NSLog(@"recieved data @push %@", data); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *responseText = [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding]; NSLog(@"didfinishLoading%@",responseText); } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error ", @"") message:[error localizedDescription] delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", @"") otherButtonTitles:nil] show]; NSLog(@"failed &push"); } // Handle basic authentication challenge if needed - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { NSLog(@"credentials requested"); NSString *username = @"username"; NSString *password = @"password"; NSURLCredential *credential = [NSURLCredential credentialWithUser:username password:password persistence:NSURLCredentialPersistenceForSession]; [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge]; } @end 

कंसोल हमेशा निम्न पंक्तियों और केवल निम्न पंक्तियां प्रिंट करता है:

 2013-04-01 20:35:04.341 ApprenticeXM[3423:907] did send body 2013-04-01 20:35:04.481 ApprenticeXM[3423:907] got response with status @push 200 2013-04-01 20:35:04.484 ApprenticeXM[3423:907] didfinish push @push <> 

वेब के समाधान से एकत्रित समाधान "IOS पर एक HTTP पोस्ट अनुरोध भेजा जा रहा है"

निम्न कोड POST पद्धति का उपयोग करते हुए एक सरल उदाहरण का वर्णन करता है। ( कैसे एक POST विधि द्वारा डेटा पास कर सकता है )

यहां, मैं वर्णन करता हूं कि कैसे एक POST विधि का उपयोग कर सकता है

1. वास्तविक उपयोगकर्ता नाम और पासवर्ड के साथ पोस्ट स्ट्रिंग सेट करें।

 NSString *post = [NSString stringWithFormat:@"Username=%@&Password=%@",@"username",@"password"]; 

2. NSASCIIStringEncoding का उपयोग करते हुए पोस्ट स्ट्रिंग को NSASCIIStringEncoding और वह पोस्ट स्ट्रिंग जो आपको NSData प्रारूप में भेजने की आवश्यकता होती है।

 NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

आपको अपने डेटा की वास्तविक लंबाई भेजने की आवश्यकता है। पोस्ट स्ट्रिंग की लंबाई की गणना करें

 NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 

3. HTTP विधि जैसे सभी गुणों के साथ एक यूआरएलआरक्वेस्ट बनाएँ, पोस्ट स्ट्रिंग की लंबाई वाले एचटी हेडर फील्ड। URLRequest ऑब्जेक्ट बनाएं और इसे आरंभ करें।

 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

उस यूआरएल को सेट करें जिसके लिए आप उस अनुरोध पर डेटा भेजते हैं।

 [request setURL:[NSURL URLWithString:@"http://www.abcde.com/xyz/login.aspx"]]; 

अब, HTTP विधि सेट करें ( POST या GET ) यह पंक्तियां लिखें क्योंकि यह आपके कोड में है।

 [request setHTTPMethod:@"POST"]; 

पोस्ट डेटा की लंबाई के साथ HTTP हैडर फ़ील्ड सेट करें

 [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 

साथ ही एन्कोडेड मान को HTTP हैडर फील्ड के लिए सेट करें।

 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

पोस्टडेटा के साथ urlrequest के HTTPBody सेट करें

 [request setHTTPBody:postData]; 

4. अब, URLConnection ऑब्जेक्ट बनाएं। इसे URLRequest के साथ आरंभ करें

 NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

यह आरंभिक यूआरएल कनेक्शन देता है और यूआरएल अनुरोध के लिए डेटा लोड करना शुरू करता है। आप जांच सकते हैं कि क्या आप URL कनेक्शन ठीक से कर चुके हैं या नीचे दिए गए किसी अन्य / सिर्फ बयान का उपयोग नहीं कर रहे हैं।

 if(conn) { NSLog(@"Connection Successful"); } else { NSLog(@"Connection could not be made"); } 

5. HTTP अनुरोध से डेटा प्राप्त करने के लिए, आप URLConnection कक्षा संदर्भ द्वारा प्रदत्त प्रतिनिधि विधियों का उपयोग कर सकते हैं। प्रतिनिधि विधि निम्नानुसार हैं

 // This method is used to receive the data which we get using post method. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data // This method receives the error report in case of connection is not made to server. - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error // This method is used to process the data after connection has made successfully. - (void)connectionDidFinishLoading:(NSURLConnection *)connection 

यह भी देखें और POST विधि के लिए यह दस्तावेज

और यहां HTTPPost विधि के स्रोत कोड के साथ सबसे अच्छा उदाहरण है

मुझे वाकई यकीन नहीं है कि क्यों, लेकिन जैसे ही मैं निम्नलिखित तरीके से टिप्पणी करता हूं, वह काम करती है:

 connectionDidFinishDownloading:destinationURL: 

इसके अलावा, मुझे नहीं लगता कि आपको NSUrlConnectionDownloadDelegate प्रोटोकॉल के तरीकों की आवश्यकता है, केवल उन NSURLConnectionDataDelegate से, जब तक आप कुछ डाउनलोड जानकारी नहीं चाहते हैं

मैं अपने लॉगिंग पुस्तकालय में उपयोग की गई विधि: https://github.com/goktugyil/QorumLogs

यह विधि Google फॉर्म के अंदर एचटीएमएल फार्म भरता है आशा है कि किसी ने स्विफ्ट का उपयोग करने में सहायता करता है

 var url = NSURL(string: urlstring) var request = NSMutableURLRequest(URL: url!) request.HTTPMethod = "POST" request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding) var connection = NSURLConnection(request: request, delegate: nil, startImmediately: true) 
 -(void)sendingAnHTTPPOSTRequestOniOSWithUserEmailId: (NSString *)emailId withPassword: (NSString *)password{ //Init the NSURLSession with a configuration NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; //Create an URLRequest NSURL *url = [NSURL URLWithString:@"http://www.example.com/apis/login_api"]; NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; //Create POST Params and add it to HTTPBody NSString *params = [NSString stringWithFormat:@"email=%@&password=%@",emailId,password]; [urlRequest setHTTPMethod:@"POST"]; [urlRequest setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; //Create task NSURLSessionDataTask *dataTask = [defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { //Handle your response here NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@",responseDict); }]; [dataTask resume]; } 

** स्थिति के साथ json प्रतिक्रिया कुंजी: मापदंडों के साथ पोस्ट एपीआई और नेविगेट करने के लिए यूआरएल के साथ मान्य: "सफलता"

 NSString *string= [NSString stringWithFormat:@"url?uname=%@&pass=%@&uname_submit=Login",self.txtUsername.text,self.txtPassword.text]; NSLog(@"%@",string); NSURL *url = [NSURL URLWithString:string]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; NSURLResponse *response; NSError *err; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; NSLog(@"responseData: %@", responseData); NSString *str = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"responseData: %@", str); NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:nil]; NSDictionary* latestLoans = [json objectForKey:@"status"]; NSString *str2=[NSString stringWithFormat:@"%@", latestLoans]; NSString *str3=@"success"; if ([str3 isEqualToString:str2 ]) { [self performSegueWithIdentifier:@"move" sender:nil]; NSLog(@"successfully."); } else { UIAlertController *alert= [UIAlertController alertControllerWithTitle:@"Try Again" message:@"Username or Password is Incorrect." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){ [self.view endEditing:YES]; } ]; [alert addAction:ok]; [[UIView appearanceWhenContainedIn:[UIAlertController class], nil] setTintColor:[UIColor redColor]]; [self presentViewController:alert animated:YES completion:nil]; [self.view endEditing:YES]; } 

JSON रिस्पांस : {"स्टेटस": "सफलता", "यूज़र_आईडी": "58", "यूज़र_नाव": "डिलिप", "रिजल्ट": "आपने सफलतापूर्वक लॉग इन किया है"} वर्किंग कोड

**

आईओएस (उद्देश्य सी) पर एक HTTP पोस्ट अनुरोध भेजा जा रहा है:

 -(NSString *)postexample{ // SEND POST NSString *url = [NSString stringWithFormat:@"URL"]; NSString *post = [NSString stringWithFormat:@"param=value"]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setHTTPMethod:@"POST"]; [request setURL:[NSURL URLWithString:url]]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:postData]; NSError *error = nil; NSHTTPURLResponse *responseCode = nil; //RESPONDE DATA NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error]; if([responseCode statusCode] != 200){ NSLog(@"Error getting %@, HTTP status code %li", url, (long)[responseCode statusCode]); return nil; } //SEE RESPONSE DATA UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Response" message:[[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; return [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding]; }