https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594
위 예제대로 진행해봤는데요
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("api_token", "gh659gjhvdyudo973823tt9gvjf7i6ric75r76");
params.put("name", mNameInput.getText().toString());
params.put("location", mLocationInput.getText().toString());
params.put("about", mAvatarInput.getText().toString());
params.put("contact", mContactInput.getText().toString());
return params;
}
@Override
protected Map<String, DataPart> getByteData() {
Map<String, DataPart> params = new HashMap<>();
// file name could found file base or direct access from real path
// for now just get bitmap data from ImageView
params.put("avatar", new DataPart("file_avatar.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mAvatarImage.getDrawable()), "image/jpeg"));
params.put("cover", new DataPart("file_cover.jpg", AppHelper.getFileDataFromDrawable(getBaseContext(), mCoverImage.getDrawable()), "image/jpeg"));
return params;
}
위쪽 String 보내는쪽에서 한글이 들어가면 서버에서 한글이 깨져 들어가네요,
(아이폰쪽은 한글로 잘 들어온다 하니 서버문제는 아닌듯합니다..)
private void buildTextPart(DataOutputStream dataOutputStream, String parameterName, String parameterValue) throws IOException {
dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"" + parameterName + "\"" + lineEnd);
//dataOutputStream.writeBytes("Content-Type: text/plain; charset=UTF-8" + lineEnd);
dataOutputStream.writeBytes(lineEnd);
dataOutputStream.writeBytes(parameterValue + lineEnd);
}
이부분에서 저 주석처리된 라인 주석을 풀어보는게 해법인줄 알았는데 안되네요,,
volley utf-8 로 구글링해봐도 해법이 잘 안보이네요
참고로 multipart가 아니라 스트링만 보내는때에는 한글이 잘 들어갑니다.
근데 파일과 함께 multipart로만 하면 한글이 깨지네요,,
작은 힌트라도 부탁드립니다..ㅠ