Issue and proposed fix. Non ascii characters in header causes a IllegalArgumentException
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- networking
Línea de trabajo
Comienza en el punto de entrada setHttpHeader y en la ruta doRequestAsync descrita en el issue; después, reproduce la solicitud con el valor del operador chino. Compara la construcción de las cabeceras con el comportamiento de Headers.Builder mencionado y verifica que la solicitud se complete sin una IllegalArgumentException.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
No pending exception expected: java.lang.IllegalArgumentException: Unexpected char
https://github.com/square/okhttp/issues/6347
https://github.com/square/okhttp/issues/4008
https://github.com/square/okhttp/issues/7275
https://github.com/square/okhttp/pull/4296
In the case of using setHttpHeader("carrier", ""中国电信"").
Note: 中国电信 is a Chinese telecommunications (cell phone provider carrier).
No pending exception expected: java.lang.IllegalArgumentException: Unexpected char 0x4e2d at 243 in User-Agent value
at void okhttp3.Headers$Companion.checkValue(java.lang.String, java.lang.String) (Headers.kt:450)
at void okhttp3.Headers$Companion.access$checkValue(okhttp3.Headers$Companion, java.lang.String, java.lang.String) (Headers.kt:362)
at okhttp3.Headers$Builder okhttp3.Headers$Builder.add(java.lang.String, java.lang.String) (Headers.kt:261)
at okhttp3.Request$Builder okhttp3.Request$Builder.addHeader(java.lang.String, java.lang.String) (Request.kt:210)
at <snipped>.setHttpHeader(java.lang.String, java.lang.String) (HttpClientRequest.java
The currently existing code snippet causes an issue.
public void setHttpHeader(String name, String value) {
this.requestBuilder = requestBuilder.addHeader(name, value);
}
I believe the possible fix is to add a
this.headersBuilder = new Headers.Builder();
and then switch setHttpHeader to
this.headersBuilder = headersBuilder.addUnsafeNonAscii(name, value);
Then in the doRequestAsync add this.requestBuilder.headers(this.headersBuilder.build()); before the OK_Client call
or to 'build and set' in every set. Just depends if you want to do a lot of duplicate work or not.
We are running a modified version of libhttpclient, so our fix is applied there. I'll see if/when I have time to PR this change into libHttpClient proper, but if not, above should help anyone who comes across similar issue.
- Lenguaje dominante
- C++
- Estrellas
- 295
- Forks
- 144
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 2
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/libHttpClient
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
microsoft/libHttpClient#964 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 65/100
microsoft/libHttpClient#958 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/libHttpClient#989 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
microsoft/libHttpClient#909 · 2 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
microsoft/libHttpClient#868 · 6 comentarios · 1 reacción ·
Todos los issues de microsoft/libHttpClient
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google/libultrahdr#485 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
godotengine/godot#123776 ·
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 60/100
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
ros2/common_interfaces#344 ·