【问题标题】:Android studio: upload image to web APIAndroid Studio:将图像上传到 Web API
【发布时间】:2015-07-30 22:15:26
【问题描述】:

我需要制作拍照的应用程序,将照片放在图像视图中,当我单击按钮上传到 Web API 服务时。

我的问题是当我尝试上传照片时,代码中出现下一个错误。

public void makeHTTPCall() {

    prgDialog.setMessage("Invoking php");
    StringEntity se = null;

    try{
        se = new StringEntity(params.toString());
        se.setContentType("application/json");
    }
    catch (UnsupportedEncodingException e){
        e.printStackTrace();
        return;
    }

    se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));

    AsyncHttpClient image = new AsyncHttpClient();

    image.post(uploadURL, se, new AsyncHttpResponseHandler()

这是我的错误。还有我的进口

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;

如您所见,我已导入 .RequestParams 和 .StringEntity

当我运行应用程序时,我有这个:

知道该怎么做吗?

【问题讨论】:

    标签: java android asp.net-web-api image-uploading


    【解决方案1】:

    您正在使用 AsyncHttpClient,并且该库支持简单的文件上传。

    image.post(uploadURL, se, new AsyncHttpResponseHandler()
    

    'se' 不是 StringEntity,因为日志结果 'StringEntity 无法转换为 RequestParams。

    image.post(targetUrl, params, Responsehandler(){});
    

    你应该这样做。

    这是使用 AsyncHttpClient 上传文件的示例代码:

    RequestParam params = new RequestParams();
    params.put("key1", "value1");
    params.put("key2", "value2");
    
    File imgFile = new File(filePath);
    try {
          params.put("file",imgFile);
    } catch(FileNotFoundException e) {}
    
    AsyncHttpClient image = new AsyncHttpClient();
    image.post(uploadURL, params, new AsyncHttpResponseHandler(){});
    

    【讨论】:

    • 当我尝试这个示例时,我得到状态码 415:不支持的媒体类型。
    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 2015-11-24
    • 2019-04-14
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多