2012-06-12 4 views
0

HTTP 클라이언트를 사용하여 서버의 서블릿으로 보내야하는 이미지 바이트 배열이 있습니다. 우리는 일반 텍스트 데이터를 보내는 방법을 알고 있지만 이미지 데이터를 보낼 수는 없습니다. HTTP 클라이언트를 사용하여 이미지를 전송할 수 없습니다.

우리는 다음과 같은 코드를 사용하여 이미지 바이트 배열에서 문자열 데이터를 생성 :

String imageData = new String(imagebyteArr); 

을 그리고 HTTP 클라이언트를 통해 서블릿 위 String을 보냈지 만 우리는 다시 코드 아래 사용하여 문자열에서 바이트 배열을 검색 할 때 :

imageByteArr = imageData.toByteArray(); 

얻어진 바이트 배열이 예상치를 해결하는 방법 63.

에 치환 -127 하나를 수정 행동?

답변

1

전적으로 입니다. 이미지 바이트 배열을 사용하고 문자 인코딩에 대해 걱정할 필요가 있으므로 String으로 변환하는 것이 좋습니다. 다음과 같이 할 수

한 가지, 바로 ByteArrayEntity를 사용하여 바이트 배열을 보낼 수 있습니다 :

HttpPost post = new HttpPost(url); 
post.setEntity(new ByteArrayEntity(bytes)); 
post.setHeader("Content-type", ""application/octet-stream"); 

적절하게 Content-Type에 대한 올바른 이미지를 설정하는 것을 잊지 마십시오.

2

문자열이 인코딩됩니다. 당신은 2 가지의 가능성을 가지고 있습니다. 바이너리 데이터를 base64로 인코딩합니다 (예를 들어) base64를 보내고 서버 측에서 디코드하거나 PUT 요청으로 바이너리 업로드합니다.

관련 문제