2013-08-21 3 views
1

나는 URL에 json 개체를 매개 변수로 전달해야하는 요구 사항이 있습니다. 여기 안드로이드 어떻게 URL 매개 변수로 JSON 개체를 전달

http://test.amazonaws.com/xyx/company/12/user/1/contact/{contactActivityJSON}/key/abccedrf/contacts?op=readsave 

내 URL

입니다 지금 contactActivityJSON의 구조는 다음과

{ 
    "user": {}, 
    "event": { 
     "id": 1, 
    }, 
    "contacts": [ 
     { 
      "id": "-1", 
      "eventId": 1, 
      "fields": [ 
       { 
        "fieldName": "test", 
        "value": "CallMe" 
       } 
      ] 
     } 
    ] 
} 

에게 URL로 JSON 객체를 인코딩 지금은 데 문제가 있습니다. 사용 중입니다.

ObjectMapper mapper = new ObjectMapper(); 
Writer strWriter = new StringWriter(); 
mapper.writeValue(strWriter, request.getRequestBody()); 
String jsonString = strWriter.toString(); 
String sss = URLEncoder.encode(jsonString); 

이 부분을 URL로 대체하여 전달합니다. 그러나 그것은 작동하지 않습니다. 아무도 도와 줄 수 있습니까?

답변

-1

당신이 서버에 JsonObject에 게시하는 것 같습니다. 아래 코드를 사용하면 정상적으로 작동합니다.

/** 
* Uplaod with Json Object 
* 
* @param _requestedURL 
* @param obj 
* @return 
* @throws IOException 
*/ 
public String UploadUrl(String _requestedURL, JSONObject obj) 
     throws IOException { 
    HttpPost _request = new HttpPost(_requestedURL); 
    HttpResponse _response = null; 
    DefaultHttpClient _httpClient = new DefaultHttpClient(); 
    String _ContetnString = null; 
    try { 
     StringEntity se = new StringEntity(obj.toString()); 
     _request.setEntity(se); 
     _request.setHeader("Accept", "application/octet-stream"); 
     _request.setHeader("Content-type", "application/octet-stream"); 
     HttpParams httpParameters = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpParameters, 
       CommonValues.TIME_OUT); 
     HttpConnectionParams.setSoTimeout(httpParameters, 
       CommonValues.TIME_OUT); 
     _request.setParams(httpParameters); 
     _response = _httpClient.execute(_request); 
     if (_response != null 
       && _response.getStatusLine().getStatusCode() == 200) { 
      //Read Responce 
     } 
    } catch (SocketException e) { 
    } catch (ConnectTimeoutException e) { 
    } catch (Exception e) { 
    } 

    return _ContetnString; 
} 
+1

게시 요청을하면 "url 매개 변수로 개체 전달"으로 간주됩니다. 그러나 나는 질문을 오해했을 수도 있습니다 – njzk2

+0

그것은 씨 @ njzk2 자격. 나는 이미 그것을 사용했다 – Sameer

+0

에 의해 한정되지 않는다, 나는 보통, 매개 변수가 url에서 지나서다는 것을 의미한다, url 매개 변수는 우연한 몸에서 아닙니다, 작동하지 않는다는 것을 의미한다. – njzk2