2013-04-23 104 views
0

嗨我正在使用urrlib2將一些數據和自定義標題發送到鏈接。我得到500內部服務器錯誤。我已經聯繫了這個服務,他們說數據(json數據)是正確的,但是在我的python代碼中有一些錯誤。我究竟做錯了什麼 ? 以下是代碼。如何使用urllib2發送數據和自定義標題

import urllib2,urllib 
import json 

PREPAYMENT_URL = "https://services.gharpay.in/rest/GharpayService/" 
PREPAYMENT_USERNAME = "somename" 
PREPAYMENT_PASSWORD = "somepass" 

data = { 
"customerDetails":{ 
       "address": "ads", 
       "contactNo": "9663924147", 
       "email": "[email protected]", 
       "firstName": "akash", 
       "lastName": "deshpande", 
       "prefix": "Mr." 
      }, 

"orderDetails" : { 
       "pincode": "411036", 
       "clientOrderID": "21234", 
       "deliveryDate": "13-10-2013", 
       "orderAmount": "123", 
       "clientComments": "please be carefull", 
       "paymentMode": "Cash", 
       "productDetails": { 
       "productID": "21334", 
       "productQuantity": "1", 
       "unitCost": "123", 
       "productDescription": "tshirt" 
       }, 
       "templateID": "" 
      }, 

} 

def create(request): 

    function = 'createOrder' 
    url = PREPAYMENT_URL 
    url = url+ function 
    headers= {'username':PREPAYMENT_USERNAME,'password':PREPAYMENT_PASSWORD,'Content-type':'application/json'} 
    data1 = urllib.urlencode(data) 
    req = urllib2.Request(url,data1,headers) 
    try: 
     contents = urllib2.urlopen(req).read() 
    except urllib2.HTTPError as e: 
     error_message = e.read() 
     print error_message # this error message is being printed. It is showing 500 error. 
+0

我看不到任何請求代碼的問題。您必須在服務器端獲得更多詳細信息才能看到實際失敗的情況(在服務器上!)。 – 2013-04-23 11:08:50

+0

哦......謝謝。對於回覆 – 2013-04-23 11:12:00

回答

1

你的代碼是除了一個teensy-weensy細節的完美:

頭應該是內容類型,不內容類型

也許試着改變這個標題,讓我知道它是否工作!

+0

對不起,沒有工作....很好,但趕上 – 2013-04-23 14:06:32

+0

如果不是這樣的話,那麼我不知道什麼是錯的。代碼看起來不錯。 – 2013-04-23 15:28:27

相關問題