Java 匿名上传文件对象到Imgur API(JSON)时出现身份验证错误401

Java 匿名上传文件对象到Imgur API(JSON)时出现身份验证错误401,java,android,json,api,imgur,Java,Android,Json,Api,Imgur,我已经创建了一个类uploadToimGurtTask,作为一个异步任务,它接受一个文件路径参数,创建并设置一个多端口,然后使用ApacheHttpClient上传带有所述实体的图像。来自Imgur的JSON响应保存在一个JSONObject中,我将其内容显示在LogCat中以供自己理解 以下是我从Imgur收到的JSON截图: 我在api.imgur.com上查找了错误状态401,它说我需要使用OAuth进行身份验证,尽管事实上imgur已经非常清楚地声明,如果图像以匿名方式上传,应用程序不

我已经创建了一个类
uploadToimGurtTask
,作为一个异步任务,它接受一个文件路径参数,创建并设置一个多端口,然后使用ApacheHttpClient上传带有所述实体的图像。来自Imgur的JSON响应保存在一个JSONObject中,我将其内容显示在LogCat中以供自己理解

以下是我从Imgur收到的JSON截图:

我在api.imgur.com上查找了错误状态401,它说我需要使用OAuth进行身份验证,尽管事实上imgur已经非常清楚地声明,如果图像以匿名方式上传,应用程序不需要使用OAuth(这就是我现在正在做的)


问题出在哪里

从api.imgur.com文档中,我的重点是:

API要求每个客户端使用OAuth 2身份验证。这意味着 您必须注册应用程序,并生成访问代码 如果您想以用户身份登录

用于公共只读和匿名资源,如获取图像信息、查找用户评论等。您只需发送 在请求中包含客户端id的授权标头。这也 如果您想匿名上传图像(不需要图像),则可以使用 被绑定到帐户),或者如果您想创建匿名 专辑这让我们知道哪个应用程序正在访问API

授权:客户ID您的客户ID

很明显,您需要在请求中添加一个授权头,才能使其正常工作。使用Apache HttpClient,其操作非常简单:

httpPost.setHeader("Authorization", yourClientId);

非常感谢!成功了!请注意,确切的代码是httpPost.setHeader(“授权”、“客户端ID”+API_密钥);基于Imgur的API文档。对于所有JS'ian:
xhr.setRequestHeader('Authorization','Client ID${API_key}')
是等效的。@请允许我进一步询问;)
    @Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);
    ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText("label", "Text to copy");
    clipboard.setPrimaryClip(clip);
}
httpPost.setHeader("Authorization", yourClientId);