【发布时间】:2019-03-22 20:09:39
【问题描述】:
现在,我正在创建一个 WCF 服务,该服务将位置发送到 Bing 地图 API 并将 PNG 图像返回给服务客户端。目前,我从他们的文档网页复制了一个有效的 api 示例,但我很难弄清楚如何传递它。
从其他 stackoverflow 问题开始,我首先将响应转换为 Base64。但它触发并收到一个错误,说输入不是Base64 形式。
A screenshot of what input looks like
public string getResponse()
{
string key = [My Api Key];
Uri geocodeRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", query, key));
Uri imageryRequest = new Uri(string.Format("https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/Redmond Washington?ms=500,270&zl=12&&c=en-US&he=1&key={0}", key));
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imageryRequest);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//Handling the response in PNG
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
string input = reader.ReadToEnd();
byte[] data = convert.FromBase64String(input);
return data;
}
【问题讨论】:
-
您附加的图像在文本编辑器中打开时看起来像 PNG 文件的标题。尝试改为读取 ByteArray 并将其保存到文件中。