POST 메소드로 Android 애플리케이션에서 WS 메소드를 호출하려고합니다. 내가 무슨 짓을 :안드로이드와 포스트 콜에서 코드 400 오류
String urlServer = GlobalSession.IP + "insert_reportByte";
Log.d("[Report]", "url address: " + urlServer);
URL url = new URL(urlServer);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type",
"multipart/form-data");
DataOutputStream outputStream = new DataOutputStream(
connection.getOutputStream());
outputStream.write(outputByteArray, 0, outputByteArray.length);
int serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
Log.d("ServerCode", "" + serverResponseCode);
Log.d("serverResponseMessage", "" + serverResponseMessage);
outputStream.flush();
outputStream.close();
} catch (Exception ex) {
// ex.printStackTrace();
Log.e("[Report] --- /!\\ Error: ", ex.getMessage());
}
return result;
그래서이 서비스에 바이트 배열을 보내도록 하죠. 하지만 400 오류 응답이 있습니다. 제 질문은 그러한 문제의 세부 사항을 얻는 방법입니다.
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "insert_reportByte",
BodyStyle = WebMessageBodyStyle.Bare)]
void insert_reportByte(byte[] image);
: 그런 식으로 나는 서버의 로그에 아무것도 찾을 수 있으며 (ASP.NET에서)
는 WS가 정의 ... 나는 세부 사항이없는 경우 디버깅하기 어렵다 때문에 호출 된 메서드는 다음과 같습니다.
public void insert_reportByte(byte[] image)
{
MyEntities entities = new MyEntities();
String base64stringimage = System.Convert.ToBase64String(image,0,image.Length);
entities.insert_report("admin", "0614141.107346.2001", "test", base64stringimage, "test");
}
무엇이 잘못 되었습니까?
감사합니다.
Postman이라는 크롬 확장 프로그램이 도움이 될 수 있습니다. 동일한 호출을하지만 브라우저에서 URL/params 매핑에 WS 오류를 따로 두십시오. – axierjhtjz
해당 방법을 사용하여 이미지를 WS로 보내려고하므로 "파일이 너무 큼"413 오류가 발생했습니다. – Derbie
나는 귀하의 문제가 귀하의 WS 내부에 상주한다고 생각하는데, 요청에 따라 허용되는 최대 허용 바이트 수는 제한되어 있습니다. 질문에 WS에 대한 자세한 정보를 추가 할 수 있습니까? – axierjhtjz