Java Apache HttpClient를 사용하여 POST 요청을 올바르게 만드는 방법은 무엇입니까?

ravl1084 :

Apache HttpClient5를 사용하는 Java 프로그램에서 웹 API를 사용하려고합니다.

다음과 함께 간단한 요청 사용 curl:

curl -X POST -H "x-api-user: d904bd62-da08-416b-a816-ba797c9ee265" -H "x-api-key: xxxxxxxxxxx" https://habitica.com/api/v3/user/class/cast/valorousPresence

예상되는 반응과 효과를 얻습니다.

내 Java 코드 사용 :

URI uri = new URIBuilder()
              .setScheme("https")
              .setHost("habitica.com")
              .setPath("/api/v3/user/class/cast/valorousPresence")
              .build();
Logger logger = LoggerFactory.getLogger(MyClass.class);
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(uri);
httpPost.addHeader(new BasicHeader("x-api-user",getApiUser()));
httpPost.addHeader(new BasicHeader("x-api-key", getApiKey()));
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
logger.info(httpResponse.toString());
return httpResponse.getCode();

Java 호출을 실행할 때 얻는 출력은 다음과 같습니다.

411 Length Required HTTP/1.0

POST 호출을 올바르게 구성하고 있지 않다고 확신합니다. 어떻게해야합니까? Content-Type을 지정하려고 시도했지만 효과가 없습니다. 코드에서 Content-Length를 설정하려고하면 컴파일 오류가 발생합니다 (내가 이해했듯이 이것은 HttpClient5에 의해 백그라운드에서 처리됨). HttpClient5를 사용하는 모든 GET 요청이 제대로 작동합니다.

안드레아스 :

A에는 POST항상 페이로드 (콘텐츠)가 있습니다. A POST내용이없는 것은 드문 일인데 잊은 게 없으신가요?

setEntity()페이로드가 비어 있더라도 Content-Length헤더 를 설정하는 엔터티이므로 호출 하여 페이로드를 설정 해야합니다 .

예를 들어 당신이 부를 수 httpPost.setEntity(new StringEntity(""))있는 세트, Content-Type: text/plainContent-Length: 0.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Mongo에서 JsonNode를 올바르게 설정하지만 Java에서 Jackson을 사용하여 String처럼 설정하지 않는 방법은 무엇입니까?

Eclipse를 사용하여 Java (Android)를 올바르게 디버그하는 방법은 무엇입니까?

Apache HTTPComponents HttpClient를 사용하여 HTTP 요청에서 SNI를 활성화하는 방법은 무엇입니까?

클래스 속성을 사용하여 조건을 올바르게 만드는 방법은 무엇입니까?

curl을 사용하여 multipart / form-data를 POST하는 올바른 방법은 무엇입니까?

Angular 앱에서 다른 개체의 값을 사용하여 HTTP POST 요청을 통해 보낼 개체를 만드는 방법은 무엇입니까?

프록시를 올바르게 사용하는 방법은 무엇입니까?

IReadOnlyDictionary를 올바르게 사용하는 방법은 무엇입니까?

stemDocument를 올바르게 사용하는 방법은 무엇입니까?

Dataloader를 사용하여 올바른 모양의 입력을 만드는 방법은 무엇입니까?

matplotlib를 사용하여 데이터를 올바르게 플로팅하는 방법은 무엇입니까?

intersphinx를 사용하여 PyQt5 문서에 올바르게 링크하는 방법은 무엇입니까?

angulafire2를 사용하여 Observable을 올바르게 초기화하고 할당하는 방법은 무엇입니까?

jQuery UI Sortable을 사용하여 올바르게 교차하는 방법은 무엇입니까?

Android Java 목록에서 int를 올바르게 제거하는 방법은 무엇입니까?

Java에서 paintComponent를 올바르게 포장하는 방법은 무엇입니까?

Java에서 함수를 올바르게 재정의하는 방법은 무엇입니까?

Java에서 Font.createFont () 후에 deriveFont ()를 올바르게 호출하는 방법은 무엇입니까?

.htaccess를 사용하여 요청 매개 변수 이름을 바꾸는 방법은 무엇입니까?

list_append를 올바르게 사용하여 DynamoDB에서 고유 한 값을 유지하는 방법은 무엇입니까?

JDB를 사용하여 중첩 클래스에서 중단 점을 올바르게 설정하는 방법은 무엇입니까?

async 및 await를 사용하여 동시 웹 요청을 많이 만드는 방법은 무엇입니까?

스마트 계약 소유자를 얻기 위해 Golang을 사용하여 RPC 호출을 올바르게 보내는 방법은 무엇입니까?

파이썬에서 정규식을 사용하여 시퀀스를 올바르게 일치시키는 방법은 무엇입니까?

NIM에서 명령 행을 통해 인수를 올바르게 전달하는 방법은 무엇입니까?

.get_queryset ()을 재정의 할 때 오류를 올바르게 반환하는 방법은 무엇입니까?

time.Parse를 올바르게 사용하여 Unix 시간 문자열에서 시간 개체를 만드는 방법은 무엇입니까?

https-post를 사용하여 PHP 페이지에 node.js로 POST 요청을 수행하는 방법은 무엇입니까?

HTTP 싱크를 올바르게 구현하는 방법은 무엇입니까?

TOP Lista

CalienteEtiquetas

Archivo