Android 工作室:将图像上传到网络 API
Android studio: upload image to web API
我需要制作可以拍照的应用程序,将照片放在图像视图中,然后单击按钮上传到 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
当我 运行 应用程序时,我有这个:
知道该怎么做吗?
您使用的是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(){});
我需要制作可以拍照的应用程序,将照片放在图像视图中,然后单击按钮上传到 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
当我 运行 应用程序时,我有这个:
知道该怎么做吗?
您使用的是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(){});