Apache HTTP client does not support GET requests with content
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 48/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- java
- Domaine
- backend-api-design, networking
Piste de recherche
Commencez par google-http-client-apache-v2/src/main/java/com/google/api/client/http/apache/v2/ApacheHttpRequest.java à la précondition mentionnée dans le rapport, puis comparez la gestion de GET dans NetHttpTransport.java. Reproduisez l’exemple fourni de ImagesClient avec ApacheHttpTransport et vérifiez que la gestion du contenu de GET n’échoue plus, tandis que PATCH reste pris en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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).
- Langage dominant
- Java
- Étoiles
- 1.4k
- Forks
- 476
- Merge moyen
- 10 h 47 min
- PR mergées (30 j)
- 3
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de googleapis/google-http-java-client
-
Core: Validate header names and values to prevent CRLF injectionPeut-être pris @insaf021 l’a pris il y a 106 jours. Ouvertepriority: p3
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Core: XmlPullParser processes external DTD entities (XXE) — disable FEATURE_PROCESS_DOCDECL in Xml#createParser()Peut-être pris @insaf021 l’a pris il y a 106 jours. Ouvertepriority: p3
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
Core: LowLevelHttpResponse not disconnected when HttpResponse construction throws RuntimeExceptionPeut-être pris @insaf021 l’a pris il y a 107 jours. Ouvertepriority: p3
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
type: cleanup
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
org.apache.http.conn.ssl.SSLSocketFactory is deprecatedPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertepriority: p2 type: cleanup
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Toutes les issues de googleapis/google-http-java-client
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
finos/fluxnova-bpm-platform#387 ·
Les mainteneurs répondent en général sous 4 jours
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Difficulté 2/5 Moins d'une heure Accessibilité débutants 84/100
cpp-best-practices/project_validator#251 ·
Les mainteneurs répondent en général sous 1 jour
-
backend enhancement
Difficulté 2/5 Une demi-journée Accessibilité débutants 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every changePeut-être pris @dwizard0 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour