从 .NET Web API 2 服务发送图像到 Android Retrofit
Send Image from .NET Web API 2 Service to Android Retrofit
我在服务器上有一个图像存储在一个文件中(不是数据库)。我想在 Android Studio 的布局视图中显示此图像。我正在使用 Web API2 和改造来交换数据。
使用改造,我知道我需要发送封装在 class 中的文件。我不知道要创建什么类型? (字节数组?)以及 android 端的改造如何转换这种类型。我试图在双方都使用 byte[] 但是改造无法从 Json.
读取 byte[]
谁能指导我如何传输此 jpeg 图像?谢谢!
我最近实现了它。
这是我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.
}
}
您要找的class是retrofit的TypedFileclass。
这是我的实现。
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);
编码愉快。
我在服务器上有一个图像存储在一个文件中(不是数据库)。我想在 Android Studio 的布局视图中显示此图像。我正在使用 Web API2 和改造来交换数据。
使用改造,我知道我需要发送封装在 class 中的文件。我不知道要创建什么类型? (字节数组?)以及 android 端的改造如何转换这种类型。我试图在双方都使用 byte[] 但是改造无法从 Json.
读取 byte[]谁能指导我如何传输此 jpeg 图像?谢谢!
我最近实现了它。
这是我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.
}
}
您要找的class是retrofit的TypedFileclass。 这是我的实现。
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);
编码愉快。