我想异步发送一些数据到服务器。我有这样的数据
customerId: 12,
itemId: [{"itemId":"40","qty":"2"},{"itemId":"41","qty":"2"}]
note:some note here
reason:damaged
我想将上述数据发送到服务器,但无法将数据发送到服务器。我在说W / System.err时出错了:java.io.FileNotFoundException:https://testgrocbay.tech/api/app-manager/get-functionality/return/new-return。
请检查我的代码
private class AsyncNewreturn extends AsyncTask<String, String, String> {
HttpURLConnection conn;
URL url = null;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
try {
url = new URL(API_PATH + "return/new-return");
} catch (MalformedURLException e) {
return "exception";
}
try {
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(READ_TIMEOUT);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("customerId", "12")
.appendQueryParameter("note", "some note here")
.appendQueryParameter("reason", "item damaged");
builder = builder.appendQueryParameter("itemId[" + 0 + "][itemId]", "40")
.appendQueryParameter("itemId[" + 0 + "][qty]", "2");
builder = builder.appendQueryParameter("itemId[" + 1 + "][itemId]", "41")
.appendQueryParameter("itemId[" + 1 + "][qty]", "1");
Log.e("Items: ", String.valueOf(builder));
String query = builder.build().getEncodedQuery();
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
conn.connect();
} catch (IOException e1) {
e1.printStackTrace();
return "exception";
}
try {
InputStream input = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
return (result.toString());
} catch (IOException e) {
return "exception";
} finally {
conn.disconnect();
}
}
}
请帮助我...