2016-09-28 13 views
0

私はこれが基本的だと知っていますが、どうやってそれを行うのですか?たとえば、POST Pythonを使用して長いJSONを送信する

import urllib2 
import ssl 
import requests 
import json 

SetProxy={'https':'https://sample.sample.com'} 
proxy = urllib2.ProxyHandler(SetProxy) 
url="https://something.com/getsomething" 
opener = urllib2.build_opener(proxy) 
urllib2.install_opener(opener) 
payload = { 
    "uaaURL": "https://com-example.something.com", 
    "sampleID": "admin", 
    "sampleSecret": "password", 
    "sampleID2": "example-sample-el", 
    "sampleSecret2": "ssenjsoemal/+11=", 
    "username": "test", 
    "someAttributes": { 
    "Groups": [ 
     "example_com-abc" 
    ], 
    "attribute": [ 
     "value1" 
    ] 
    } 
} 

req = urllib2.Request(url) 
req.add_header('Content-Type','application/json') 
response = urllib2.urlopen(req, json=json.dumps(payload)) 

上記の実行と私のJSONが悪いことを意味する400を与えます。ポストリクエストで大きなJSONデータを送信した投稿を見つけることができませんでした。何かアドバイス?ありがとう!

+0

どのようにあなたのAPIでこれを処理していますか? 400は通常、API仕様に従ってJSONが無効であることを示します。 –

+0

JSON形式は、ペイロードに割り当てた形式(スペースとすべて)に厳密に準拠する必要があります。その後、APIはそれを受け入れます。 –

答えて

-1

は、以下を使用してみてください:

import json 

import urllib2 

import ssl 

import requests 

SetProxy={'https':'https://sample.sample.com'} 

proxy = urllib2.ProxyHandler(SetProxy) 

url='https://something.com/getsomething' 

opener = urllib2.build_opener(proxy) 

urllib2.install_opener(opener) 

data = { 
    'uaaURL' : 'https://com-example.something.com', 
    'sampleID': 'admin', 
    'sampleSecret': 'password', 
    'sampleID2': 'example-sample-el', 
    'sampleSecret2': 'ssenjsoemal/+11=', 
    'username': 'test', 
    'someAttributes': { 
    'Groups': ['example_com-abc' ], 
    'attribute': [ 'value1' ] 
    } 

req = urllib2.Request('https://something.com/getsomething') 

req.add_header('Content-Type', 'application/json') 

response = urllib2.urlopen(req, json.dumps(data)) 
+0

動作しません。二重引用符は、APIが期待するものです。 –

+0

これで二重引用符でこれを試してください –

+0

何を変更しましたか?私は変更を見つけることができませんか? –

関連する問題