2017-10-26 14 views
3

私はプログラミングAPIの初心者です。私はロボットをサイト上で実行しようとしています。これはAPI Crypto-games API doc siteのドキュメントですが、私は400 errorを実行しています。コマンドを実行してもエラーは出力されず、エラーコードだけが出力されます。ここではJavascriptが彼らがここ APIエラーを使用したPythonプログラミング

var input = { Bet: 0.00001024, Payout: 2.0, UnderOver: true, 
ClientSeed: "somerandomseed" }; 
$.ajax({ 
    url: "https://api.crypto-games.net/v1/placebet/BTC/7Ii8vdPBUBfTPHcuzkHuhftkGD43iWwbFkdwBQa7GL8R4AwBr3", 
    data: JSON.stringify(input), 
    dataType: "json", 
    contentType: "application/json", 
    type: "POST", 
    success: function (r) { 
     console.log(r); 
    } 
}); 

を与えたサンプルは、私が試した

import requests 
import json 

parameter = {"Bet": 10.0000000, "Payout":2.0, " >50.399": True, "ClientSeed": "CTThgTlac54qK2lahvLicrFlJsJmSIEkRMt4VcuN"} 
parameters = json.dumps(parameter) 
response = requests.get("https://api.crypto-games.net/v1/placebet/PLAY/XxxMyAPIHerexxX", params = parameters) 
print(response.content) 
print(response.status_code) 

placebetコマンドを実行するために書いたPythonコードはここですよ、彼らは自分のサイト

URL: /v1/placebet/:coin/:key 
{ "Bet": 0.00001024, "Payout": 2.0, "UnderOver": true, "ClientSeed": "somerandomseed" } 
UnderOver is target result. Example: < 49.600 or > 50.399` 

を上与えたもので、 json.dumps()なしで実行していますが、私はまだ同じ出力を得ています。誰かが私が間違っていることを指摘できますか?すべての批判と提案は大歓迎です。

+0

あなたは 'json.dumpsを()'は必要ありませんが、あなたはそれ 'requests.postようにする必要があります代わりに '関数呼び出し。 – Eric

+0

ありがとう、私はそれに不注意だったので、私はもっと注意する必要があります。 –

答えて

2

Place bet文書(および貼り付けられたコード例)によると、GETではなく、POSTの要求であると考えられます。

response = requests.post(...) 

編集:私はparamsをURLに送信され、文字列化されたデータは、リクエストボディ/データに行くされているので、あなたのparams要求では、代わりにdataされるべきだと思います。

parameters = json.dumps(parameter) 
response = requests.post("https://api.crypto-games.net/v1/placebet/PLAY/XxxMyAPIHerexxX", 
         data=parameters) 

(。 json.dumps()は正しいです)そして、あなたが requests の最新のバージョンにしている場合、あなたはそれなしJSON data in the bodyを送ることができます:

>>> url = 'https://api.github.com/some/endpoint' 
>>> payload = {'some': 'data'} 

>>> r = requests.post(url, json=payload) 

編集2:

"UnderOver": trueは送信するデータに必須です。それらの例は、それがどのように数値に変換されるべきかについては不明である。私はそれがBetの値だと思う(+/-ベット額)。だから、試してください:それは代わりにJSブールtrueのJS文字列"True"にPythonのTrueを変換するため

parameter = {"Bet": 10.0000000, "Payout":2.0, "UnderOver": True, "ClientSeed": "CTThgTlac54qK2lahvLicrFlJsJmSIEkRMt4VcuN"} 

また、requests.post(url, json=payload)メソッドを使用しないでください。だから、parameters = json.dumps(parameter)メソッドに固執しますが、依然としてデータです。

Wrtの "Content-Typeの" エラー、あなたの要求にこれを追加します。

headers = {'Content-Type': 'application/json'} 
response = requests.post("https://api.crypto-games.net/v1/placebet/PLAY/XxxMyAPIHerexxX", 
         data=parameters, 
         headers=headers) 
+0

私のエラーメッセージが表示されました。ありがとうございます。 –

+0

paramsはURLとともに送られ、文字列化されたデータはbody/dataに入るので、リクエストの 'params'は' data'でなければなりません。 – aneroid

+0

私は周りのものを切り換えようとしましたが、私はまだ 'invalid parameter'エラーを受け取りました。私は' UnderOver'と関係があります。私はそれを表現する方法を完全に理解していません。 '>>> parameter = { "Bet":10.0000000、 "Payout":2.0、 "Over":True、 "ClientSeed": "CTThgTlac54qK2lahvLicrFlJsJmSIEkRMt4VcuN"}「 」>>> response = requests.post(_url、json = parameter) ' –

関連する問題