Python 使用pycurl从服务器获取响应
程序如上所述,但我无法从服务器获得正确的响应。 错误是: ) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) com.sun.grizzly.ContextTask.run(ContextTask.java:71) com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) run(Thread.java:701) . . . 这只是错误的快照Python 使用pycurl从服务器获取响应,python,curl,dbpedia,pycurl,spotlight-dbpedia,Python,Curl,Dbpedia,Pycurl,Spotlight Dbpedia,程序如上所述,但我无法从服务器获得正确的响应。 错误是: ) com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) com.sun.grizzly.ContextTask.run(ContextTask.java:71) com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) com.s
如何修复它?您可以尝试此代码
def curlDBPedia(DB_url):
data = json.dumps({"text":"President Obama called Wednesday on Congress to extend a tax break for students included in last year's economic stimulus package, arguing that the policy provides more generous assistance.",
"confidence": "0.2", "support": "20"
})
c = pycurl.Curl()
c.setopt(pycurl.URL, DB_url)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()
curlDBPedia("http://spotlight.dbpedia.org/rest/annotate")
我有点困惑;看起来您已经粘贴了Python代码,但没有粘贴java stacktrace。你能提供更多的上下文吗?更新:在将该URL发布到浏览器(我意识到它将执行GET请求)后,我看到了类似的输出。输出不是程序的堆栈跟踪,而是服务器的输出。所以请求中的某些内容需要有所不同。异常的开头是什么?这是重要的部分,而不是结尾。看起来web服务器有一些bug。
def curlDBPedia(DB_url):
data = json.dumps({"text":"President Obama called Wednesday on Congress to extend a tax break for students included in last year's economic stimulus package, arguing that the policy provides more generous assistance.",
"confidence": "0.2", "support": "20"
})
buffer = StringIO()
c = pycurl.Curl()
c.setopt(pycurl.URL, DB_url)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.setopt(c.WRITEFUNCTION, buffer.write)
c.perform()
c.close()
body = buffer.getvalue()#here we got the response data
curlDBPedia("http://spotlight.dbpedia.org/rest/annotate")