Hice un fragmento de código POST https simple usando python y javascript.
Esperaba que todos los resultados fueran los mismos, pero los resultados no lo son.
El resultado de Python (con solicitudes) devuelve 200 mientras que javascript (con axios) devuelve 500.
Creo que todas las condiciones, incluidos los encabezados, son exactamente iguales, pero me pregunto por qué sucede esta situación.
Por favor, avíseme si me equivoco.
[Código Python] / Python 3.9.6
import requests import json s = requests.Session() _url = 'https://graphql.bitquery.io/' _data = { "variables": json.dumps({ "limit": 1, "offset": 0, "network": "ethereum", "token": "0xB8c77482e45F1F44dE1745F52C74426C631bDD52", "from": "2021-06-01", "till": "2022-01-02T23:59:59", "dateFormat": "%Y-%m-%d" }) } r = s.post(url=_url, data=_data) r.textSu respuesta devuelve 200 y el resultado se muestra a continuación.
'{"data":{"ethereum":{"transfers":[{"block":{"timestamp":{"time":"2022-01-02 23:59:50"},"height":13929166},"sender":{"address":"0xf60c2ea62edbfe808163751dd0d8693dcb30019c","annotation":null},"receiver":{"address":"0x7b60d1c03cda03952bebc58d7a64c2e15f738356","annotation":null},"transaction":{"hash":"0x09be49c24fc639572a6dcc4e338ce57c5f2d206c983935f6c21df522276dc875"},"amount":0.24,"currency":{"symbol":"BNB"},"external":true}]}}}'También escribí otro fragmento simple usando javascript con axios y esperaba el mismo resultado pero...
[Código JavaScript] / node.js v16.13.1
const axios = require('axios') const _url = 'https://graphql.bitquery.io/' const _data = { "variables": JSON.stringify({ "limit": 1, "offset": 0, "network": "ethereum", "token": "0xB8c77482e45F1F44dE1745F52C74426C631bDD52", "from": "2021-06-01", "till": "2022-01-02T23:59:59", "dateFormat": "%Y-%m-%d" }) } const r = async () => { const resp = await axios.post(_url, { data: _data }) console.log(resp) } r()Su respuesta devuelve 500 y el resultado se muestra a continuación.
Uncaught Error: Request failed with status code 500@CBoe Gracias por su ayuda. Fue debido a un error de sintaxis de axios.
const r = async () => { const resp = await axios.post(_url, { data: _data }) console.log(resp) } r()-> debe revisarse como se indica a continuación.
const r = async () => { const resp = await axios.post(_url, _data) console.log(resp) } r()Su respuesta devuelve 200.
{status: 200, statusText: 'OK', headers: {…}, config: {…}, request: ClientRequest, …}