1
제가 아파치 HTTP-구성 요소 (4.1.2)
curl --data "strings[]=testOne&string-keys[]=test.one&strings[]=testTwo&string-keys[]=test.two&project=Test" https://api.foo.com/1/string/input-bulk
대상 API는 배열로 문자열 및 문자열 키 매개 변수를 필요로이 명령을 수행 할
와 배열 매개 변수를 게시하는 방법은 각 매개 변수에 대해 문자열 [] 및 문자열 키 []을 반복하는 것을 의미합니다.
이 curl 명령은 올바르게 작동하지만 Http 구성 요소와 똑같은 매개 변수를 가지고 있습니다.
아마도 내가 뭔가 잘못하고 있습니다.
POST params : project=Test&string-keys%5B%5D=test.one&strings%5B%5D=TestOne&string-keys%5B%5D=test.two&strings%5B%5D=TestTwo
가 나는 곱슬 곱슬 뒤에 --data 넣어 경우,하지만 HttpCoponents와, 작동 : 같은
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("project", PROJECT_NAME));
for (Entry entry : newEntries)
{
params.add(new BasicNameValuePair("string-keys[]", entry.getKey()));
params.add(new BasicNameValuePair("strings[]", entry.getValue()));
params.add(new BasicNameValuePair("context[]", ""));
}
URI uri = URIUtils.createURI("https", "api.foo.com", -1, "/1/string/input-bulk", null, null);
UrlEncodedFormEntity paramEntity = new UrlEncodedFormEntity(params);
logger.info("POST params : {}", EntityUtils.toString(paramEntity));
HttpPost httpRequest = new HttpPost(uri);
httpRequest.setEntity(paramEntity);
HttpResponse response = new DefaultHttpClient().execute(httpRequest);
포스트 PARAMS 보인다. 누군가 왜 그 이유를 설명 할 수 있습니까?
미리 감사드립니다
감사를 작동합니다 – tbruyelle
UrlEncodedFormEntity 대신 StringEntity를 사용해 보셨습니까? – momo
그래, StringEntity를 사용하면 아무것도 변경되지 않습니다, 내 문제는 인코딩과 관련이없는 것 같습니다. 내 질문을 업데이트합니다. – tbruyelle