열심히 찾아봐도 대부분 key-value로 값을 pair로 합쳐서 보내지 걍 TextEntity를 보내는건 찾기가 넘 힘들었다.
JSON을 key-value로 보내서 서버에서 합쳐주는 것도 좋을거 같지만.. 이번 플젝중에 구현해야할 부분에서는 JSON 데이타를 String으로 서버에 보내는 형식이라서 String을 Put의 Entity에 담아서 보내줘야 했다~
Jersey를 사용하려 했는데 JAVA에서는 Jersey가 잘 되지만 안드로이드에서는 jersey가 안되더라.. 그래서 기본 제공해주는 HttpClient를 사용했다.
public class PutJSONtoServer {
	
	public PutJSONtoServer() {

		String strURL = "/*WRITE DOWN SERVER ADDRESS*/"; //이곳에 Server URL을 적자
				
		byte[] postBodyByte; //Entity로 보낼 려면 우선은 byte로 바꿔야 함
		String postBody=""; //Entity로 보낼 값
		
		postBody = "THIS IS THE ENTITY DATA";
		postBodyByte=postBody.getBytes(); //Entity를 Byte로 바꿔준다.
		
		HttpEntity httpBody = new ByteArrayEntity(postBodyByte); //Byte로 바뀐 Entity를 HttpEntity로 바꿔준다.
		HttpResponse response = null;
		HttpParams params = new BasicHttpParams(); 
		HttpClient client = new DefaultHttpClient(); //HttpClient 선언
		HttpPut httpPut = new HttpPut(strURL); //만약 put이 아니고 post로 할거면 걍 HttpPost로 바꿔주면 된다.
		httpPut.setHeader("Content-type","application/json"); //이건 json쓸거라서 이렇게 했다.. 쓸 사람 맘대로 바꾸면 된다.
		httpPut.setEntity(httpBody); //이곳에 httpBody를 넣는다. httpBody는 엔티티이다~
		httpPut.setParams(params);
		try {
			response=client.execute(httpPut); //서버로 전송한다.
			Log.i("PUTJSONtoServer","SendJSONData");
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		Log.i("PUTJSONtoServer","GET TATUS LINE: " + response.getStatusLine());	
	}
}


저작자 표시 비영리 변경 금지
신고
블로그 이미지

roter

JHB / Peripheral Programmer

댓글을 달아 주세요