외부 API를 사용하려면 "="기호없이 값없이 매개 변수를 전달해야합니다. 당신이 첫 번째 매개 변수는 서버에서 호출 할 수있는 방법 (methodName로)의 이름을 볼 수 있으며, 모든 값이 아니다 "="를 가지고 있지 않기 때문에 URL은HttpClient 값이없는 매개 변수를 포함하는 양식 URL
http://example.com/Service/v1/service.ashx?methodName&name=val&blablabla
입니다. 나는 아래처럼 형성 "오른쪽"방법하지만 순간에 매개 변수를 형성 할 : 연결이 (대신 PARAMS의 정기적 인 변환의) 사용되는 경우
List<NameValuePair> params = new LinkedList<NameValuePair>();
params.add(new BasicNameValuePair("name", "val"));
params.add(new BasicNameValuePair("name1", "val1"));
String paramString = URLEncodedUtils.format(params, "utf-8");
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(getEndpointUrl() + "?methodName&" + paramString);
문제는 마지막 줄에 있습니다. name으로 "methodName"을 params에 추가하고 null을 값으로 사용하면 결과 URL에 "methodName ="이 제공됩니다. 서버는 이러한 표기법을 이해하지 못합니다.
나는 이렇게 할 필요가 있거나이 해결책을 이고르의 답과 결합해야 할 것 같습니다. – Artemm
BasicNameValuePair를 사용할 때만 문제가 발생하면 좋은 해결책입니다. 어쨌든,이 코드를 일부 HttpServiceRequest에 캡슐화하고 다음과 같이 사용합니다. new HttpServiceRequest (serviceName, params); –