2010-04-08 9 views
2

다소 간단한 작업이어야하는 문제가 있습니다. 웹 서비스에 게시 할 JSON 배열이 하나만있는 JSON 배열이 필요합니다. 전체 URL 요청은 다음과 같이 포맷해야 :Android에서 webservice에 JSON 배열 게시

http://www.myserver.com/myservice.php?location_data=[ {"key1":"val1","key2":"val2"....}]

나는 내 인생 HttpPost 사용하여 비트가 'location_data'을 추가하는 방법을 알아낼 수 없습니다. 여기 은 내가 사용하고 HTTP 연결 방법을 설명하는 코드이다 : 나는 구문 오류가없는

HttpClient hClient = new DefaultHttpClient(); 
    HttpPost hPost = new HttpPost(url); 

    try { 
     hPost.setEntity(new StringEntity(string)); 
     hPost.setHeader("Accept", "application/json"); 
     hPost.setHeader("Content-type", "application/json"); 

     //execute request 
     HttpResponse response = (HttpResponse) hClient.execute(hPost); 
     HttpEntity entity = response.getEntity(); 

을, 내 코드는 그냥 정확한 형식으로 서버의 벌금을 액세스하는 서버가 필요합니다. 내 요청을 형식화하는 방법에 대한 도움이 필요하다면 크게 도움이 될 것입니다.

답변

2

'?'다음에 URL에 키/값 데이터를 추가합니다. POST가 아닙니다.

이 자바에 데이터를 게시하는 방법입니다 : [정보] 짐에 대한

String urlText = "http://www.myserver.com/myservice.php"; 
String postContent = "location_data=[{\"key1\":\"val1\",\"key2\":\"val2\"}]"; 
try { 
    HttpURLConnection c = (HttpURLConnection) new URL(urlText).openConnection(); 
    c.setDoOutput(true); 
    OutputStreamWriter writer = new OutputStreamWriter(c.getOutputStream(), "UTF-8"); 
    writer.write(postContent); 
    writer.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

감사합니다! 분명히하기 위해, 나를 위해 작성한 코드가 POST이면, 여전히 '?'로 포맷 할 것입니다. 내가 필요로하는 것처럼? 또한 방법을 사용하여 서버 응답을 검색하고 저장하려면 어떻게해야합니까? 다시 한 번 감사합니다. – Sam

+1

'?' 표기법은 GET을 의미하므로 필요하지 않습니다. 이 방법으로 JSON이 서버로 전송 된 것을 본 적이 없습니다. 서버 응답은 연결시 c.getInputStream()으로 돌아옵니다. –