我希望使用Deviantsart的公共API来托管我正在处理的项目的一些图像。
我遇到的问题是我没有通过网址获取JSON结果,而是获取整个网页。
他们的指示相对简单
使用我们的公共REST API上传:POST http://deviantsart.com yourimage.jpg
然后返回带有URL的JSON-Result:
{ "url" : "urltoimage" }
这是我的代码。
的WebAPI
[HttpPost]
public async Task<HttpResponseMessage> UploadGliderData()
{
if (!Request.Content.IsMimeMultipartContent())
{
this.Request.CreateResponse(HttpStatusCode.UnsupportedMediaType);
}
var httpPostedFile = HttpContext.Current.Request.Files["file"];
using (var client = new HttpClient())
{
using (var content =
new MultipartFormDataContent())
{
var image = new Bitmap(httpPostedFile.InputStream);
var stream = new MemoryStream();
image.Save(stream, ImageFormat.Jpeg);
var imgContent = new StreamContent(stream);
imgContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg");
content.Add(imgContent);
using (
var message =
await client.PostAsync("http://deviantsart.com", content))
{
var input = await message.Content.ReadAsStringAsync();
return this.Request.CreateResponse(HttpStatusCode.OK, input);
}
}
}
}
AngularJS控制器
function upload(files) {
if (files && files.length) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
Upload.upload({
url: '/api/SGWebAPI/UploadGliderData',
method: 'POST',
data: $scope.glider,
file: file
})
.success(function (data, status, headers, config) {
debugger;
console.log('file ' + config.file.name + 'uploaded. Response: ' + data);
}).error(function (data, status, headers, config) {
debugger;
console.log('error status: ' + status);
});
}
}
结果
可以找到输入值Here
提前谢谢