0

ブラウザで画像を返す特別な URL があります。この特別な画像を UIImage オブジェクトに入れたいと思います。ただし、以下のコード サンプルでは、​​返されたデータが画像ではないようです。

ブラウザは画像を認識しているようですが、どうすれば画像にアクセスできますか?

はい、私たちが抱えている問題を解決するには、proxify プロキシ サーバー経由でこの画像を取得する必要があります。

これがサンプルコードです。

-(UIImage*)retrieveMap
{        
    NSString* proxifiedGoogleMapURL = @"http://proxify.com/p/011010A1000100/687474703a2f2f6d6170732e676f6f676c652e636f6d2f6d6170732f6170692f7374617469636d61703f63656e7465723d34312e3031343130312c2d3130342e393738333333267a6f6f6d3d362673697a653d35303678353036267363616c653d32266d6170747970653d726f61647326666f726d61743d706e672673656e736f723d66616c7365";  

    NSURLRequest * firstRequest = [NSURLRequest requestWithURL:[NSURL URLWithString: proxifiedGoogleMapURL]];
    NSURLResponse * firstResponse = nil; 
    NSError * firstError = nil;
    NSData* firstData = [NSURLConnection sendSynchronousRequest:firstRequest returningResponse:&firstResponse error:&firstError];

    UIImage* dataAsImage = [UIImage imageWithData:firstData];


    if(firstError != nil || dataAsImage == nil)
    {
        NSLog(@"Failed in retrieving the map");
    }
    else 
    {
        NSLog(@"Succeeded in retrieving the map");
    }

    return dataAsImage;
}
4

1 に答える 1

0

私はいくつかの問題を発見しました:

  1. firstError != nilUIImageに変換する前に、テストする必要があります。ある種の後でそれをテストすると、それは役に立たなくなります。

  2. あなたが投稿したそのURLにアクセスしようとしましたが、ログインしているユーザーだけが利用できるというエラーが表示されました。ブラウザでは、おそらくログインしているので機能する可能性がありますが、iPhoneは機能せず、そのHTMLを取得します。プロキシから

  3. 取得した応答を確認するには、イメージを作成する前に、イメージをNSStringに変換して、コンソールに表示します。

NSLog(@"Response from server: %@", [[NSString alloc] initWithData:firstData encoding:NSUTF8StringEncoding]

于 2012-05-04T15:09:42.580 に答える