[英]Cannot get DELETE working with liburl2 with python for REST api
好的,所以我正在使用与此代码非常相似的代码( https://gist.github.com/metadaddy-sfdc/1374762 )获取身份验证令牌,并使用libur2进行简单查询,将python中的其余api用于销售人员数据库,但是当我尝试遵循此答案中给出的说明时, 如何使用urllib2进行HTTP DELETE方法? ,
我无法使其正常工作,以便可以使用delete,两个代码都使用liburl,但是它们似乎采用不同的格式,因此我不知道如何将堆栈交换提供的解决方案应用于我的代码。告诉我我是一个初学者,所以将不胜感激任何帮助
编辑:这是我正在使用的代码,其中键/密码为空白
import urllib
import urllib2
import json
import pprint
import re
import subprocess
def authorise():
consumer_key = '**********************'
consumer_secret = '**************'
username = '***********'
password = '*****************'
login_server = 'https://login.salesforce.com'
token_url = login_server+'/services/oauth2/token'
params = urllib.urlencode({
'grant_type': 'password',
'client_id': consumer_key,
'client_secret': consumer_secret,
'username': username,
'password': password
})
data = urllib2.urlopen(token_url, params).read()
oauth = json.loads(data)
return oauth
def country_id_query(params):
query_url = oauth['instance_url']+'/services/data/v23.0/query?%s' % params
headers = {
'Authorization': 'OAuth '+oauth['access_token']
}
req = urllib2.Request(query_url, None, headers)
data = urllib2.urlopen(req).read()
result = json.loads(data)
id = result['records'][0]['Id']
return id
oauth = authorise()
token = oauth['access_token']
print "\ntoken is = " + token
params = urllib.urlencode({
'q': 'SELECT id from Country__c WHERE name = \'A New Found Land\''
})
id = country_id_query(params)
print "\nCountry id is "+id + "\n"
我正在寻找找出我需要添加到此内容以使DELETE工作的方法
好的,为遇到类似问题的任何人找到了上面的解决方案:
def delete_country(id):
query_url = oauth['instance_url']+'/services/data/v23.0/sobjects/Country__c/%s' % id + '/'
headers = {
'Authorization': 'OAuth '+oauth['access_token']
}
opener = urllib2.build_opener(urllib2.HTTPHandler)
req = urllib2.Request(query_url, None, headers)
req.get_method = lambda: 'DELETE' # creates the delete method
url = urllib2.urlopen(req) # deletes database item
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.