Не удалось отправить данные в конечную точку Google из приложения Cococa (Objective-C). Как это сделать?

Я создал утилиту электронной почты с помощью конечных точек Google (Python). Проблема в том, что я не могу отправить на него данные. Я получаю сообщение об ошибке.

{ "error": { "errors": [ { "domain": "global", "reason": "parseError", "message": "Этот API не поддерживает синтаксический анализ ввода, закодированного в форме." } ], "code": 400, "message": "Этот API не поддерживает синтаксический анализ ввода, закодированного в форме". } }

То, что я делаю в 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");
}

person Vikas Bansal    schedule 10.09.2015    source источник


Ответы (1)


См.: Как отправить данные json в HTTP-запрос с использованием NSURLRequest

По сути, вам нужно установить заголовок «Content-Type», чтобы принимающая конечная точка не думала, что она закодирована в форме (по умолчанию), а вместо этого распознавала ее как JSON.

[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
person maxjar10    schedule 10.09.2015
comment
он отлично работает с этими данными @ {\ body \: \ test \, \ subject \: \ test \}, но он не работает с этим типом данных {тело: тело Имя Пол А Алабиси Фамилия Идентификатор клиента 31877 Ключ Serail 2512948ead29a82d, тема: суб} - person Vikas Bansal; 11.09.2015