2012-05-09 2 views
0

CDYNE 서비스를 사용하여 주소 확인에 python을 사용하려고합니다.urllib2.HTTPError에서 CDYNE 결과가 필요합니다. HTTP 오류 400 : 잘못된 요청

나는 POST 요청을 참조로 this을 사용하고는

import urllib2 
import urllib 

url = 'http://pav3.cdyne.com/PavService.svc/VerifyAddressAdvanced' 
data = {} 

data['CityName'] = 'San Francisco' 
data['FirmOrRecipient'] = 'CDYNE' 
data['LicenseKey'] = 'valid_key' 
data['PrimaryAddressLine'] = '45 fremont street' 
data['ReturnCaseSensitive'] = True 
data['ReturnCensusInfo'] = True 
data['ReturnCityAbbreviation'] = True 
data['ReturnGeoLocation'] = True 
data['ReturnLegislativeInfo'] = True 
data['ReturnMailingIndustryInfo'] = True 
data['ReturnResidentialIndicator'] = True 
data['ReturnStreetAbbreviated'] = True 
data['SecondaryAddressLine'] = '' 
data['State'] = 'CA' 
data['Urbanization'] = '' 
data['ZipCode'] = '94105' 

를 다음과 같습니다 내가

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 398, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 511, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 436, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 370, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 519, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 400: Bad Request 

I로 오류가

data_encoded = urllib.urlencode(data) 
req = urllib2.Request(url, data_encoded) 
response = urllib2.urlopen(req) 

을 다음과 같은 요청을 게시 이것에 새롭다 무엇이 wr 갔는 지 이해하지 말라. 도움을 청하십시오.

답변

1

json 또는 xml 형식의 문서로 요청을 보내면 링크 된 페이지에 스키마가 있습니다.
api에서 지원하지 않는 urlencoded 요청을 보내고 있습니다.

편집 :

import json 
data_encoded = json.dumps(data) 
req = urllib2.Request(url, data_encoded, {'Content-Type': 'application/json'}) 
response = urllib2.urlopen(req) 
print response.read() 
# ... 
+0

마타를, 내가 그렇게 어떻게 : 그게 JSON을 사용 같을 것이다 방법은? 나는 그것을 할 방법이 보이지 않는다. – daydreamer

+0

이것은 매력처럼 작동한다! 고마워. 마타. – daydreamer

관련 문제