无法从 Cococa 应用程序 (Objective-C) POST 数据到 Google 端点。怎么做?
Unable to POST data to Google End Point from Cococa Application (Objective-C). How to do it?
我在 Google 端点 (Python) 的帮助下创建了一个电子邮件实用程序。
问题是我无法向它 POST 发送数据。我收到一个错误。
{ "error": { "errors": [ {
"domain": "global",
"reason": "parseError",
"message": "This API does not support parsing form-encoded input." } ], "code": 400, "message": "This API does not support parsing
form-encoded input." } }
下面给出了我在 Objective-C 中所做的事情
//Here my URL
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URL]];
//create the Method "GET" or "POST"
[request setHTTPMethod:@"POST"];
//Pass The String to server
NSString *dataPost = @"{\"body\": \"email body\",\"subject\": \"email subject\"}";
//Check The Value what we passed
NSLog(@"the data Details is =%@", dataPost);
//Convert the String to Data
NSData *data1 = [dataPost dataUsingEncoding:NSUTF8StringEncoding];
//Apply the data to the body
[request setHTTPBody:data1];
//Create the response and Error
NSError *err;
NSURLResponse *response;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];
//This is for Response
NSLog(@"got response==%@", resSrt);
if(resSrt)
{
NSLog(@"got response");
/* ViewController *view =[[ViewController alloc]initWithNibName:@"ViewController" bundle:NULL];
[self presentViewController:view animated:YES completion:nil];*/
}
else
{
NSLog(@"faield to connect");
}
请看:How to send json data in the Http request using NSURLRequest
基本上,您需要设置 "Content-Type" header 以便接收端点不会认为它是编码形式(默认),而是将其识别为 JSON。
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
我在 Google 端点 (Python) 的帮助下创建了一个电子邮件实用程序。 问题是我无法向它 POST 发送数据。我收到一个错误。
{ "error": { "errors": [ { "domain": "global", "reason": "parseError", "message": "This API does not support parsing form-encoded input." } ], "code": 400, "message": "This API does not support parsing form-encoded input." } }
下面给出了我在 Objective-C 中所做的事情
//Here my URL
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URL]];
//create the Method "GET" or "POST"
[request setHTTPMethod:@"POST"];
//Pass The String to server
NSString *dataPost = @"{\"body\": \"email body\",\"subject\": \"email subject\"}";
//Check The Value what we passed
NSLog(@"the data Details is =%@", dataPost);
//Convert the String to Data
NSData *data1 = [dataPost dataUsingEncoding:NSUTF8StringEncoding];
//Apply the data to the body
[request setHTTPBody:data1];
//Create the response and Error
NSError *err;
NSURLResponse *response;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding];
//This is for Response
NSLog(@"got response==%@", resSrt);
if(resSrt)
{
NSLog(@"got response");
/* ViewController *view =[[ViewController alloc]initWithNibName:@"ViewController" bundle:NULL];
[self presentViewController:view animated:YES completion:nil];*/
}
else
{
NSLog(@"faield to connect");
}
请看:How to send json data in the Http request using NSURLRequest
基本上,您需要设置 "Content-Type" header 以便接收端点不会认为它是编码形式(默认),而是将其识别为 JSON。
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];