1

我会创建一个应用程序来将我的 AdMob 收入保留在我的 iPhone 上。我已阅读API 文档并编写了一些代码。但是我对给我一个空请求的 POST 请求有问题。响应!

NSString* PostURL= [NSString stringWithFormat:@"https://api.admob.com/v2/auth/login"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:PostURL]];
[request setPostValue:APIKey forKey:@"client_key"];
[request addRequestHeader:@"Content-Type" value:@"application/x-www-form-urlencoded;"];
[request setPostValue:@"mymail@gmail.com" forKey:@"email"];
[request setPostValue:@"mypassword" forKey:@"password"];


[request setDelegate:self];
[request startSynchronous];

并使用 ASIHTTPRequestDelegate 方法获取响应:

-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data{

NSLog(@"didReceive data %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);}

输出是一样的:didReceive data: (null)

你可以帮帮我吗?

4

3 回答 3

1

新的 Admob Web 似乎不再存在 REST API。

于 2015-01-30T10:48:39.173 回答
0

我认为您不想在此调用中使用 ASIFormDataRequest。您应该改用标准的 ASIHTTPRequest 类并将其方法设置为 POST。然后,您传递的参数不是作为标头字段,而是作为请求的主体。所以你的代码应该是这样的:

NSString *bodyString = @"client_key=123456&email=email@gmail.com&password=password";

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"https://api.admob.com/v2/auth/login"]];
[request setRequestMethod:@"POST"]; 
[request setPostBody:[bodyString dataUsingEncoding:NSUTF8StringEncoding]];

您还可以尝试将 Content-Type 标头显式设置为“application/json”。当您对 url 进行 POST 时,JSON 似乎是返回的。

[request addRequestHeader:@"Content-Type" value:@"application/json"];

如果您想对原始请求进行故障排除,您还可以尝试从命令行使用 curl 来查看它发送的内容。使用如下命令:

> curl -d "client_key=123456&email=email@gmail.com&password=password" https://api.admob.com/v2/auth/login

此致。

于 2012-06-01T19:45:39.550 回答
0

如果您正在开发应用程序,则需要使用原生Google AdMob Ads SDK而非 API 来获取广告。

在此处查看入门指南。

于 2012-06-01T18:28:03.937 回答