将图像从.NET Web API 2服务发送到Android Retrofit

时间:2015-10-08 02:35:35

标签: android image asp.net-web-api2 retrofit

我在存储在文件(而不是db)中的服务器上有一个映像。我想在Android Studio的布局视图中显示此图像。我正在使用Web API2和改造来交换数据。

使用改造,我知道我需要发送封装在类中的文件。我不知道要创建什么类型? (字节数组?)以及android方面的改造将如何转换此类型。我试过在两边都使用byte [],但是改装无法从Json读取byte []。

有人能指导我如何转移这个jpeg图像吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我最近实施了它。

这是我的api中的方法。

[HttpPost]
public IHttpActionResult Upload()
{
    var httpRequest = HttpContext.Current.Request;
    if (httpRequest.Files.Count > 0)
    {
        foreach (string file in httpRequest.Files)
        {
            var postedFile = httpRequest.Files[file];
            // Do something with file.
        }
        else
        {
            // No files.
        }
    }

您正在寻找的课程是改造的TypedFile课程。 这是我的实施。

RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("baseurl").build();
ApiTaqueria api = restAdapter.create(ApiTaqueria.class);
TypedFile foto = new TypedFile("multipart/form-data", new File("path"));
api.subirLogoTaqueria(foto, new Callback<Taqueria>() {
    @Override
    public void success(Taqueria result, Response response) {
    // Do something.
    }

    @Override
    public void failure(RetrofitError retrofitError) {
    // Do something.
    }
});

在改造界面中。

@Multipart
@POST("/api/Photo/Upload")
public void subirLogoTaqueria(@Part("foto") TypedFile foto, Callback<Taqueria> callback);

快乐的编码。