西班牙
斯潘4
你好。
我想使用粘贴在这里的Python脚本运行一个工作区。但是每次我运行它,我都会得到以下错误:
HTTP错误422:无法处理的实体
我的Python版本是2.7。
FME服务器2016
感谢您的帮助!
import urllib2 import json SERVER_URL=“http://100.100.100.100”REPOSITORY=“MyRepo”WORKSPACE=“First%20Test.fmw”TOKEN=“ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd”Š;将已发布的参数设置为object params={“publisheddparameters”:[{“name”:“pathñ1”,“value”:“C:\ test1”},{“name”:“pathò“value”:“C:\ test2”}]}url={0}/fmerest/v2/transformations/commands/submit/{1}/{2}。format(服务器url、存储库、工作区)请求构造函数需要字节,因此我们需要对字符串body=json.dumps(params)进行编码。encode('utf-8')headers={Content Type':'application/json',Accept':'application/json','Authorization':'fmetoken token={0}'。format(token)}这将使用POST,因为我们包括data req=urllib2.Request(url,body,headers)r=urllib2.urlopen(req)print('Request status:'+str(r.status))resp=r.read()resp=resp.decode('utf-8')resp=json.loads(resp),如果r.status==202:print('Job ID为{0}'。format(resp['ID']))
仔细想想,您不需要urlencode()。
路径名中的反斜杠可能会导致问题。尝试使用正斜杠:params={“publishedParameters”:[{“name”:“path_1”,“value”:“C:/test1”},{“name”:“path_2”,“value”:“C:/test2”}]}
作为参考,返回代码422表示“请求的格式正确,但由于语义错误而无法执行”。如果仍然收到错误,请确保您的工作区确实有两个参数“path_1”和“path_2”(注意大小写)。
?2019安全亚搏在线软件公司|合法的