multipart제가 하는 방식이 틀린부분이있는지 모르겠습니다.
전송시 PHP에서 POST값으로 넘어오지 않는 것 같습니다.
테스트용으로 작성해보았습니다.
Manifest에는 INTERNET 퍼미션 추가하였습니다.
url_address -> 서버php파일입니다.
private class test extends AsyncTask<String ,Void, String>{
@Override
protected String doInBackground(String... params) {
String text = params[0];
String boundary = "*****";
String twotp = "--";
String lineEnd = "\r\n";
try {
URL url = new URL(url_address);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(lineEnd + twotp + boundary + lineEnd);
wr.writeBytes("Content-Disposition: form-data; name=\"text\"\r\n\r\n" + text);
wr.writeBytes(lineEnd + twotp + boundary + twotp + lineEnd);
wr.flush();
//READ
String result = "";
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream is = conn.getInputStream();
InputStreamReader isReader = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(isReader);
String line = "";
while ((line = reader.readLine()) != null) {
result += line;
}
isReader.close();
is.close();
}
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
return "error1";
} catch (IOException e) {
e.printStackTrace();
return "error2";
}
}
@Override
protected void onPostExecute(String s) {
Toast.makeText(getApplicationContext(), s , Toast.LENGTH_LONG).show();
}
}