-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Migrate HttpURLConnection usages to OkHttp
#22375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Replace direct HttpURLConnection usage with the shared OkHttpClient for
better connection pooling and consistency with the rest of the codebase.
Changes:
- Inject `@Named("regular") OkHttpClient` via Dagger
- Use HEAD request instead of GET for efficiency (only need Content-Length)
- Simplify content length retrieval using OkHttp's response API
Replace direct HttpURLConnection usage with the shared OkHttpClient for
video downloads in support ticket attachments.
Changes:
- Inject `@Named("regular") OkHttpClient` via Dagger
- Use `okHttpClient.newBuilder()` to configure custom timeouts
- Stream response body to temp file using OkHttp's byteStream API
- Simplify cleanup by relying on OkHttp's response.use {} auto-close
Replace direct HttpURLConnection usage with the shared OkHttpClient for
intercepting private site image requests in WebViews.
Changes:
- Inject `@Named("regular") OkHttpClient` via Dagger field injection
- Use synchronous `execute()` as required by `shouldInterceptRequest`
- Configure timeouts via `newBuilder()` to preserve existing behavior
- Pass response body stream directly to WebResourceResponse
Replace direct HttpURLConnection usage with the shared OkHttpClient for
intercepting private post image requests in Reader WebViews.
Changes:
- Inject `@Named("regular") OkHttpClient` in ReaderWebView
- Pass OkHttpClient to inner ReaderWebViewClient class
- Use synchronous `execute()` as required by `shouldInterceptRequest`
- Preserve User-Agent and Connection headers from original implementation
Generated by 🚫 Danger |
|
|
| App Name | WordPress | |
| Flavor | Jalapeno | |
| Build Type | Debug | |
| Version | pr22375-3749bba | |
| Commit | 3749bba | |
| Direct Download | wordpress-prototype-build-pr22375-3749bba.apk |
|
| App Name | Jetpack | |
| Flavor | Jalapeno | |
| Build Type | Debug | |
| Version | pr22375-3749bba | |
| Commit | 3749bba | |
| Direct Download | jetpack-prototype-build-pr22375-3749bba.apk |
WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderWebView.java
Dismissed
Show dismissed
Hide dismissed
WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderWebView.java
Dismissed
Show dismissed
Hide dismissed
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## trunk #22375 +/- ##
==========================================
- Coverage 39.02% 39.02% -0.01%
==========================================
Files 2203 2203
Lines 106342 106351 +9
Branches 15061 15061
==========================================
Hits 41501 41501
- Misses 61350 61359 +9
Partials 3491 3491 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
|
||
| class TempAttachmentsUtil @Inject constructor( | ||
| @Named(IO_THREAD) private val ioDispatcher: CoroutineDispatcher, | ||
| @Named("regular") private val okHttpClient: OkHttpClient, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ Can we use a constant here? There are 4 instances of "regular" in the PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've looked at the same thing while reviewing the changes and found that this is extensively used across the code base. So, introducing a constant would need to be done in a separate PR - or we'd either introduce inconsistency or change too many irrelevant files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in #22379
adalpari
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM and works as expected!
Just left a minor comment





Summary
Migrate remaining
HttpURLConnectionusages toOkHttpfor consistency with the rest of the codebase. Using the sharedOkHttpClientprovides unified configuration, better connection pooling, and consistent timeout/auth handling.Changes
VideoLoader: Use OkHttp HEAD request to fetch video Content-Length headerTempAttachmentsUtil: Use OkHttp for downloading video attachments in support ticketsWPWebViewClient: Use OkHttp for intercepting private site image requests in WebViewsReaderWebView: Use OkHttp for intercepting private post image requests in ReaderTest Instructions