swagger-api / swagger-api/swagger-codegen
swagger-codegen Java client throws PROTOCOL_ERROR when running on Android
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 17.8k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
Description
When running Java client on Android, it throws PROTOCOL_ERROR - I think it has something to do with Java client using an old version of OkHttp that has HTTP2.0 bugs
Swagger-codegen version
2.3.1
Swagger declaration file content or url
https://api.cloudmersive.com/convert/docs/v1/swagger
Command line used for generation
java -jar swagger-codegen-cli.jar generate -i https://api.cloudmersive.com/convert/docs/v1/swagger -l java --api-package com.cloudmersive.client --model-package com.cloudmersive.client.model --invoker-package com.cloudmersive.client.invoker --group-id com.cloudmersive --artifact-id cloudmersive-java-api-client --artifact-version 1.1.9 -o .
Steps to reproduce
Generate the client using above command
Create a test project in Android Studio
Immediately see the protocol_error:
com.cloudmersive.client.invoker.ApiException: java.io.IOException: stream was reset: PROTOCOL_ERROR
We also tried generating the client with the other library templates but those don't actually compile - pretty frustrating.
Related issues/PRs
https://github.com/square/okhttp/issues/1844
Suggest a fix/enhancement
Change the Java client to use OK HTTP 3.11.0 instead of old 2.75.0 version
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided swagger-codegen command and inspect the generated Java client's dependency configuration, especially the OkHttp version. Reproduce the Android PROTOCOL_ERROR, then verify the generated client uses OkHttp 3.11.0 and the reproduction no longer throws the protocol error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- api, mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100