J'accède à Amazones MWS-Api via parse.com (qui est construit sur nodejs) et rencontre des problèmes avec leurs rapports flatfile (le point de terminaison getreport). Tous les caractères spéciaux (ä, ö, ü) sont simplement supprimés. Selon le MWS-Support, ils utilisent le CP1252-Encoding. Voici le code de la demande.Parse.com/Nodejs Les caractères spéciaux http-request ont été supprimés
// Parse.Cloud.httpRequest is parses version of the nodejs http-module
Parse.Cloud.httpRequest({
url: "https://mws.amazonservices.de/?",
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
"Host": "mws.amazonservices.de",
"x-amazon-user-agent": "MyUserAgent(Language=Javascript)",
"Accept-Charset": "CP1252"
},
body: queryString
success: function(resp){
response.success(resp)
}
},
error: function(err){
response.error(err)
}
La réponse en-têtes que je reçois présente comme suit:
{
"Connection": "close",
"Content-Length": "395828",
"Content-MD5": "Xw8KYGqESc7u4TTzgcbT/g==",
"Content-Type": "text",
"Date": "Thu, 13 Aug 2015 10:21:00 GMT",
"Server": "AmazonMWS",
"Vary": "Accept-Encoding,User-Agent",
"x-amz-request-id": "xxxxx",
"x-mws-quota-max": "60.0",
"x-mws-quota-remaining": "58.0",
"x-mws-quota-resetsOn": "2015-08-13T10:38:00.000Z",
"x-mws-request-id": "xxxxx",
"x-mws-response-context": "C0ywPcTe0K9qESsoz4OzZX9oRJMDuYR9vvk5MfN3KKOGEnyWgSZlOQDixINemnwLVZl0DjXEdrY=",
"x-mws-timestamp": "2015-08-13T10:21:01.186Z"
}
Pour clarifier les choses, les caractères spéciaux ne sont pas brouillé (pas « » ou quelque chose comme ça). "Für" est simplement reçu comme "Fr" .Ordre, j'ai le même problème avec amazons scratchpad (https://mws.amazonservices.de/scratchpad/index.html), qui devrait, selon le MWS-Support, montrer les caractères spéciaux correctement. Merci pour toute aide à l'avance.
edit1: Aussi, un de mes collègues a un problème très similaire avec parse, dans un projet complètement indépendant (source de données différente n tout). Après un peu d'expérimentation en python, je suis à peu près certain que son flux de données est encodé en latin1, pas utf8, ce qui semble causer le problème. N'importe quelle façon d'imposer le codage latin1 ou CP1252 dans l'analyse?
Vous avez mal compris. La requête envoyée forme le code dans ma question va à amazon. Je ne demande jamais rien d'analyser. La réponse d'amazon sera traitée en parse et enregistrée dans la base de données. Il n'y a pas de "côté client", ou plutôt, le code du nuage d'analyse est le côté client. L'en-tête de réponse d'Amazon ne spécifie aucun codage, mais le support MWS a signalé que tous les rapports sont codés dans CP1252. Le problème de latin1 est juste lié dans la mesure où dans les deux cas, nous avons besoin d'un moyen de spécifier le codage de la réponse reçue en analyse. – MoorzTech