当前位置: 首页 > 知识库问答 >
问题:

如何将pastebin API与python一起使用?[特定错误]

斜宁
2023-03-14

我正在尝试将pastebin api用于docs:pythonhttps://pastebin.com/doc_api.使用urllib库:https://docs.python.org/3/library/urllib.html.

import urllib.request
import urllib.parse

def main():

    def pastebinner():
        site = 'https://pastebin.com/api/api_post.php'
        dev_key = 
        code = "12345678910, test"      
        our_data = urllib.parse.urlencode({"api_dev_key": dev_key, "api_option": "paste", "api_paste_code": code})  
        our_data = our_data.encode()                    
        resp = urllib.request.urlopen(site, our_data)
        print(resp.read())
        
    pastebinner()

if __name__ == "__main__":
    main()

这是我得到的错误:

urlopen return opener中的文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9\u 3.9.1520.0\u x64\u qbz5n2kfra8p0\lib\urllib\request.py”第214行。打开(url,数据,超时)文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9\u 3.9.1520.0\u x64\u qbz5n2kfra8p0\lib\urllib\request.py”,第523行,在open response=meth(req,response)文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9\u 3.9.1520.0\u x64\u qbz5n2kfra8p0\lib\urllib\request.py”,第632行在http\u response response=self中。父母亲错误(文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9\u 3.9.1520.0\u x64\u qbz5n2kfra8p0\lib\urllib\request.py”,第561行,错误返回self。\u call\u chain(*args)文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.Python.3.9.1520.0\u x64\u qbz5n2kfra8p0\urllib\request.py”,第494行,在http\u error\u default raise HTTPError(req.full\u url,code,msg,hdrs,fp)urllib中的\u call\u chain result=func(*args)File“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9.1520.0\u x64\u qbz5n2kfra8p0\lib\urllib\request.py”第641行中。错误HTTPError:HTTP错误422:无法处理的实体

关于出现此错误的原因,您有什么想法吗?

我还是不知道,请帮忙。2::v

共有2个答案

西门逸仙
2023-03-14

把这个放在这里,以防其他人碰到这个问题。对此不能百分之百确定,稍后将测试不要使用URLLIB2使用httplib2。我相信这会解决你的问题。

江正德
2023-03-14

您正在使用urllib.request.urlopen(site,our_data),这是一个HTTP GET(urllib中任何内容的默认值)。您需要做一个HTTP POST。强制性w3链接

请注意,以下代码未经测试

import urllib.request
import urllib.parse


def main():

    def pastebinner():
        site = 'https://pastebin.com/api/api_post.php'
        dev_key = 'APIKEYGOESHERE'
        code = "12345678910, test"
        our_data = urllib.parse.urlencode({"api_dev_key": dev_key, "api_option": "paste", "api_paste_code": code})
        our_data = our_data.encode()
        request = urllib.request.Request(site, method='POST')
        resp = urllib.request.urlopen(request, our_data)
        print(resp.read())

    pastebinner()


if __name__ == "__main__":
    main()

这个错误是非常无益的。我的意思是,为什么不返回一个茶壶响应呢?

 类似资料:
  • 问题内容: 我一直在四处搜寻,但是我不太了解ajax的工作原理。 可否请人解释这是如何工作的? 我正在尝试做的是查看document.getElementsByClassName(current)是否已更改。如果有,它将询问app.py当前的评论和标签,并在不刷新的情况下更新页面。我也不知道该怎么写才能在app.py上收到它。 我将包含我的app.py,但这不是很好。 问题答案: 通常,服务器上的

  • 问题内容: 我知道Android 很棒。它使我们能够播放本地文件以及媒体流。而且非常容易使用(例如): 通过调用具有不同参数集的重载,可以设置不同类型的DataSource 。这个函数有一个有趣的原型: 看起来可以用自己的实现完全覆盖。它确实有效: 并在主要代码中: 是的,这很好。但是,如果我尝试音频/ aacp广播流(例如:“ http://111.223.51.8:8005”-它是“ COOL

  • 问题内容: 在我们的应用程序中,我们有一个要使用SSL的付款页面,因为我们正在处理信用卡信息。我们已经为apache制定了重写规则,以将对特定页面的请求重定向到HTTPS -它处理对支付页面(http://oursite.com/pay)的任何直接请求。 但是,我们网站中的大多数导航都是通过相对URL并在angularjs中使用而完成的,我们发现apache不能捕获这些请求,因此可以在没有SSL的

  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。