Apache HTTP client does not support GET requests with content
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- java
- Domínio
- backend-api-design, networking
Direção de pesquisa
Comece com google-http-client-apache-v2/src/main/java/com/google/api/client/http/apache/v2/ApacheHttpRequest.java na precondição mencionada no relatório e, em seguida, compare o tratamento de GET em NetHttpTransport.java. Reproduza o exemplo fornecido de ImagesClient com ApacheHttpTransport e verifique se o tratamento do conteúdo de GET não falha mais, enquanto PATCH continua sendo compatível.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I'm trying to update a resource with google-cloud-compute-1.3.0, the client does this using HTTP PATCH. This is not supported with the default NetHttpTransport (#1316): https://github.com/googleapis/google-http-java-client/blob/7ebc6ca7807424b6372f1b52ac7b129752a9acf5/google-http-client/src/main/java/com/google/api/client/http/javanet/NetHttpTransport.java#L68-L76
To workaround that, I set the HTTP transport to ApacheHttpTransport, but then other requests fail with
Caused by: java.lang.IllegalStateException: Apache HTTP client does not support GET requests with content.
at com.google.common.base.Preconditions.checkState(Preconditions.java:469)
at com.google.api.client.util.Preconditions.checkState(Preconditions.java:113)
at com.google.api.client.http.apache.v2.ApacheHttpRequest.execute(ApacheHttpRequest.java:60)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1012)
at com.google.api.gax.httpjson.HttpRequestRunnable.run(HttpRequestRunnable.java:143)
... 6 more
This precondition is run when getContentStreaming() != null: https://github.com/googleapis/google-http-java-client/blob/7ebc6ca7807424b6372f1b52ac7b129752a9acf5/google-http-client-apache-v2/src/main/java/com/google/api/client/http/apache/v2/ApacheHttpRequest.java#L59-L71
but in this case getContentStreaming() is returning an com.google.api.client.http.EmptyContet due to https://github.com/googleapis/gax-java/pull/648
I think this precondition needs to be relaxed and be in-line with NetHttpTransport, which does support GET requests with non-null getContentStreaming().
Environment details
- Specify the API at the beginning of the title. For example, "BigQuery: ...").
google-cloud-compute-1.3.0 - OS type and version: RHEL 8.3
- Java version: 11.0.10
- google-http-client version(s): 1.39.2
Code example
TransportChannelProvider transportChannelProvider = InstantiatingHttpJsonChannelProvider.newBuilder().setHttpTransport(new ApacheHttpTransport()).build();
ImagesSettings settings = ImagesSettings.newBuilder().setTransportChannelProvider(transportChannelProvider).build();
try (ImagesClient client = ImagesClient.create(settings)) {
client.list("centos-cloud");
}
Will fail with the stacktrace above. Removing either .setTransportChannelProvider() or .setHttpTransport() (so that it defaults to NetHttpTransport) will fix this issue (but then PATCH doesn't work).
- Linguagem predominante
- Java
- Estrelas
- 1.4k
- Forks
- 476
- Merge médio
- 10h 47min
- PRs com merge (30d)
- 3
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de googleapis/google-http-java-client
-
Core: Validate header names and values to prevent CRLF injectionTalvez já em andamento @insaf021 assumiu há 106 dias. Abertapriority: p3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Core: XmlPullParser processes external DTD entities (XXE) — disable FEATURE_PROCESS_DOCDECL in Xml#createParser()Talvez já em andamento @insaf021 assumiu há 106 dias. Abertapriority: p3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
-
Core: LowLevelHttpResponse not disconnected when HttpResponse construction throws RuntimeExceptionTalvez já em andamento @insaf021 assumiu há 107 dias. Abertapriority: p3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
-
type: cleanup
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
org.apache.http.conn.ssl.SSLSocketFactory is deprecatedTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Abertapriority: p2 type: cleanup
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Todas as issues de googleapis/google-http-java-client
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
finos/fluxnova-bpm-platform#387 ·
Mantenedores costumam responder em até 4 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
-
Dificuldade 2/5 Menos de uma hora Facilidade para iniciantes 84/100
cpp-best-practices/project_validator#251 ·
Mantenedores costumam responder em até 1 dia
-
backend enhancement
Dificuldade 2/5 Meio dia Facilidade para iniciantes 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every changeTalvez já em andamento @dwizard0 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia