Issue with Content Type
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é
- Plutôt claire
- Activité
- Calme
- Stack technique
- ruby
- Domaine
- networking
Piste de recherche
Reproduisez la requête POST et inspectez request.to_hash, puis lisez net/http/header.rb autour de la ligne 713, où l’échec signalé de Content-Type en minuscules se produit. Suivez l’interaction entre header assignment et content_type ; c’est terminé lorsque l’affectation d’en-tête insensible à la casse produit un seul Content-Type correct sans nécessiter de second setter.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
We've identified an issue in the current release of net-http (0.3.2).
When setting a 'Content-Type' header on a POST request like so:
request['Content-Type'] = 'application/json'
It does set the header, however, it does not recognize that the Content-Type is set correctly and adds an additional header to the request with the default application/x-www-form-urlencoded
This can be seen when calling: request.to_hash.inspect:
{"accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "Accept"=>["*/*"], "User-Agent"=>["Ruby"], "Host"=>["api.songstats.com"], "Content-Type"=>["application/json"], "connection"=>["close"], "host"=>["api.songstats.com"], "content-length"=>["290"], "content-type"=>["application/x-www-form-urlencoded"]}
The only way to force the application/json header to go through is to explicitly set it in the request:
request.content_type = 'application/json'
So actually it needs to be set twice in order to fully work:
request['Content-Type'] = 'application/json'
request.content_type = 'application/json'
Also when setting request['content-type'] = 'application/json' in lower case it's throwing the error:
NoMethodError: undefined method `split' for nil:NilClass
from /Users/Oskar/.rbenv/versions/3.2.1/lib/ruby/3.2.0/net/http/header.rb:713:in `main_type'
It would be great if this can be streamlined so that setting the content-type in the headers immediately propagates across the entire request, without the need to set it multiple times or be cautious of case sensitivity. This took us a couple of hours to debug because we were un-aware that it currently sends the same header twice in the same request with different values.
- Langage dominant
- Ruby
- Étoiles
- 148
- Forks
- 95
- Merge moyen
- 10 h 54 min
- PR mergées (30 j)
- 4
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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 ruby/net-http
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
Toutes les issues de ruby/net-http
Issues similaires
-
user-reported
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Kong/developer.konghq.com#7316 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
TheOdinProject/curriculum#31408 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
CI: json 3.0.2 removed `quirks_mode`, breaking ActiveSupport's JSON encoder on every test job Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
bensheldon/good_job#1816 · 5 commentaires ·