-1

私は、カスタムの場所を追加する機能を必要とする 1 つのアプリケーションに取り組んでいます。場所 myhome、myschool など。次の Google API を使用しました https://developers.google.com/places/documentation/#adding_a_place

APIで必要に応じてデータを投稿します。場所の追加ボタンをクリックすると、次のコードが追加されました。

-(IBAction)submitPressed:(id)sender
{

 NSString *temp = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/add/json"]; 
     temp = [temp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     NSLog(@"add location to map url: %@",temp);
     NSURL *url = [NSURL URLWithString:temp];
     NSString *requeststr = @"sensor=false&key=AIzaSyCd4CHYWFPLhw4g5yGJyYZXSV-RZRIQfiM&location=-33.8669710/151.1958750&accuracy=50&name=Google Shoes!&types=shoe_store&language=en-AU";
     requeststr = [requeststr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSData *requestdata = [NSData dataWithBytes:[requeststr UTF8String] length:[requeststr length]];

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        [request setHTTPMethod:@"POST"];
        [request setHTTPBody:requestdata];

        NSURLResponse *response = NULL;
        NSError *requestError = NULL;
        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&requestError];
        NSString *responseString = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease];
        NSLog(@"responseString:%@",responseString);
}

responseStringのログをチェックすると、それが表示されます

`<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 400 (Bad Request)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}
  </style>
  <a href=//www.google.com/><img src=//www.google.com/images/errors/logo_sm.gif alt=Google></a>
  <p><b>400.</b> <ins>That’s an error.</ins>
  <p>Your client has issued a malformed or illegal request.  <ins>That’s all we know.</ins>

だから、誰でも私が間違いや場所を地図に追加するための提案を見つけるのを手伝ってくれませんか. APIの呼び出しで別のキーを試しましたが、毎回同じエラーが表示されます。前もって感謝します。

4

1 に答える 1

0

コードは実際にはそれよりも少し複雑で長くなっています。すべてのコードを提供するわけではないので、サンプルコードを含む素晴らしいチュートリアルを紹介します(ちなみに、シミュレータではなくiOSデバイスでのみ機能します)。

iOSSDK用のGoogleプレイスに関するチュートリアル

チュートリアルダウンロード用の驚くべきサンプルコードプロジェクト

また、ご存知のとおり、出力に奇妙な文字が含まれているのは、取得する応答文字列がXML形式であるためです。ただし、プロジェクトはJSONを使用します。を使用してXMLを解析する必要がありますNSXMLParserが、リンク先のプロジェクトには包括的なチュートリアルがあり、サンプルプロジェクトに感銘を受けます。

于 2012-07-02T13:08:50.533 に答える