Apache HTTP client does not support GET requests with content
還沒有人認領這個 Issue。
評估
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 新手友好度
- 48/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 停滯
- 技術堆疊
- java
研究方向
從報告中提到的前置條件開始檢查 google-http-client-apache-v2/src/main/java/com/google/api/client/http/apache/v2/ApacheHttpRequest.java,然後比較 NetHttpTransport.java 中對 GET 的處理。使用 ApacheHttpTransport 重現所提供的 ImagesClient 範例,並驗證 GET 內容處理不再失敗,同時 PATCH 仍受支援。
由索引模型根據 Issue 內容生成。
描述
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).
- 主要語言
- Java
- 星號
- 1.4k
- 分支
- 476
- 平均合併
- 10 小時 47 分鐘
- 30 天內合併 PR
- 3
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
googleapis/google-http-java-client 的其他 Issue
-
Core: Validate header names and values to prevent CRLF injection可能已有人在做 @insaf021 於 106 天前認領。 未關閉priority: p3
難度 2/5 1-3 小時 新手友好度 78/100
-
Core: XmlPullParser processes external DTD entities (XXE) — disable FEATURE_PROCESS_DOCDECL in Xml#createParser()可能已有人在做 @insaf021 於 106 天前認領。 未關閉priority: p3
難度 2/5 1-3 小時 新手友好度 84/100
-
Core: LowLevelHttpResponse not disconnected when HttpResponse construction throws RuntimeException可能已有人在做 @insaf021 於 107 天前認領。 未關閉priority: p3
難度 2/5 1-3 小時 新手友好度 84/100
-
type: cleanup
難度 2/5 1-3 小時 新手友好度 68/100
-
org.apache.http.conn.ssl.SSLSocketFactory is deprecated可能重新可做 關聯的 PR 已關閉且未合併。 未關閉priority: p2 type: cleanup
難度 2/5 1-3 小時 新手友好度 65/100
查看 googleapis/google-http-java-client 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 80/100
finos/fluxnova-bpm-platform#387 ·
維護者通常 4 天內回覆
-
難度 1/5 1 小時以內 新手友好度 88/100
-
難度 2/5 1 小時以內 新手友好度 84/100
cpp-best-practices/project_validator#251 ·
維護者通常 1 天內回覆
-
backend enhancement
難度 2/5 半天 新手友好度 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every change可能已有人在做 @dwizard0 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 75/100
維護者通常 1 天內回覆