【发布时间】:2014-11-13 12:15:47
【问题描述】:
我有一个应用程序,它可以拍照并向我发送给定图片的 uri。 接下来,我想做的是将这张图片发送到我的网络服务。
但是,一旦我尝试过,我遇到了一个我以前遇到过的错误,它与 asynctask 有关。所以试图解决它,我有一个 HttpManager 类,它包含有关如何连接到 web 服务、url 本身以及它处理图像 uri 的位置的信息。
public static String uploadImageToWebservice(String uri, String imageUri) {
HttpURLConnection connection = null;
int responseCode = 0;
String image = "";
try {
URL url = new URL(uri + imageUri);
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "text/plain");
/*
* String userpassword = adminUser + ":" + adminPassword; String
* encodedAuthorization = DatatypeConverter
* .printBase64Binary(userpassword.getBytes("UTF-8"));
* connection.setRequestProperty("Authorization", "Basic " +
* encodedAuthorization);
*/
InputStream is = connection.getInputStream();
image = is.toString();
responseCode = connection.getResponseCode();
connection.disconnect();
} catch (IOException e) {
Log.e("URL", "failure response from server >" + e.getMessage()
+ "<");
} finally {
if (connection != null) {
connection.disconnect();
}
}
return image;
}
这就是我在活动中处理此方法的方式。
private void submitImage(String uri) {
HttpAsyncTask at = new HttpAsyncTask();
at.execute(uri);
}
private class HttpAsyncTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
String image = HttpManager.uploadImageToWebservice(params[0],
params[1]);
return image;
}
}
然后我使用 web 服务的 Uri 在 oncreate 中调用 submitImage 方法。
但我有点纠结于将图像本身的 uri 放在哪里以便发送。我只是觉得我错过了一些东西,我不知道它在哪里。希望它能够理解这一切。
提前致谢!
【问题讨论】:
标签: android image web-services android-asynctask uri