4

Have a look at this API: https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRtAAAATLZNl354RwP_9UKbQ_5Psy40texXePv4oAlgP4qNEkdIrkyse7rPXYGd9D_Uj1rVsQdWT4oRz4QrYAJNpFX7rzqqMlZw2h2E2y5IKMUZ7ouD_SlcHxYq1yL4KbKUv3qtWgTK0A6QbGh87GB3sscrHRIQiG2RrmU_jF4tENr9wGS_YxoUSSDrYjWmrNfeEHSGSc3FyhNLlBU&key=AddYourOwnKeyHere

当您使用 Postman 或在浏览器中调用它时,它会返回一个呈现精美的图像。现在,从应用程序内部,当我使用 $http 或 jQuery 调用此 API 时,返回的是大量“垃圾”。谁能解释一下这个垃圾是什么?是图片对应的base64编码的二进制数据吗?我需要这些信息才能在我的应用程序中显示此图像。img ng-src="{{photo}}" 和 img data-ng-src="{{photo}}" 都不起作用。我还尝试在 img 标签中明确指定 base64,但没有奏效。

谢谢!

4

2 回答 2

5

该 URL 返回图像的二进制文件,例如 JPEG 文件。您可以直接将该 URL 用作src标记的<img>

于 2015-05-07T03:52:15.780 回答
0

如果我查看从 google api 返回的页面的视图源,它是 api 直接返回图像。

谷歌图片API

确切地说,它在响应标头上返回 image/png 内容类型。

这是 C# Web Api 2 的 API 代码示例:

public HttpResponseMessage Get(int? id){

        var path = HostingEnvironment.MapPath("~");
        path = Path.Combine(path, "Static", "robot.png");

        HttpResponseMessage response = new HttpResponseMessage();
        var fileStream = new FileStream(path, FileMode.Open);
        var streamContent = new StreamContent(fileStream);

        response.Content = streamContent;

        response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");

        return response;
}

和tadaaa ... API正在工作:)在此处输入图像描述

于 2017-01-06T07:26:01.483 回答