Java Android,通过编程方式将照片上传到imgur上的主机

Java Android,通过编程方式将照片上传到imgur上的主机,java,android,upload,photo,imgur,Java,Android,Upload,Photo,Imgur,我尝试过通过imgur上传和检索链接的不同方法,但没有一种方法成功,尽管我查看了imgur api。 但以下方法部分有效。。 我想找回 错误:如果发生任何错误。 链接到图像:指向承载的图像的链接 删除链接:用于删除承载的图像的链接 但我只得到了“删除链接”,因为其他链接都是空白的, 请查看: public void post(String path) { List<NameValuePair> postContent = new ArrayList<NameVal

我尝试过通过imgur上传和检索链接的不同方法,但没有一种方法成功,尽管我查看了imgur api。

但以下方法部分有效。。 我想找回

错误:如果发生任何错误。 链接到图像:指向承载的图像的链接 删除链接:用于删除承载的图像的链接

但我只得到了“删除链接”,因为其他链接都是空白的, 请查看:

public void post(String path) {


    List<NameValuePair> postContent = new ArrayList<NameValuePair>(2);  
    postContent.add(new BasicNameValuePair("key", DEV_KEY));  
    postContent.add(new BasicNameValuePair("image", path));


    String url = "http://api.imgur.com/2/upload";
    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpPost httpPost = new HttpPost(url);

    try {
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

        for(int index=0; index < postContent.size(); index++) {
            if(postContent.get(index).getName().equalsIgnoreCase("image")) {
                // If the key equals to "image", we use FileBody to transfer the data
                entity.addPart(postContent.get(index).getName(), new FileBody(new File (postContent.get(index).getValue())));
            } else {
                // Normal string data
                entity.addPart(postContent.get(index).getName(), new StringBody(postContent.get(index).getValue()));
            }
        }

        httpPost.setEntity(entity);

        HttpResponse response = httpClient.execute(httpPost, localContext);
        mImgurResponse = parseResponse (response);


        Iterator it = mImgurResponse.entrySet().iterator();
        while(it.hasNext()){
            HashMap.Entry pairs = (HashMap.Entry)it.next();

            Log.i("INFO",pairs.getKey().toString());
            if(pairs.getValue()!=null){
                reviewEdit.setText(pairs.getValue().toString());

            Log.i("INFO",pairs.getValue().toString());
            }
        }


    } catch (IOException e) {
        e.printStackTrace();
    }
}

private Map<String,String> parseResponse(HttpResponse response) {
        String xmlResponse = null;

        try {
            xmlResponse = EntityUtils.toString(response.getEntity());
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        if (xmlResponse == null) return null;

        HashMap<String, String> ret = new HashMap<String, String>();
        ret.put("error", getXMLElementValue(xmlResponse, "error_msg"));
        ret.put("delete", getXMLElementValue(xmlResponse, "delete_page"));
        ret.put("original", getXMLElementValue(xmlResponse, "original_image"));

        return ret;
    }

private String getXMLElementValue(String xml, String elementName) {
        if (xml.indexOf(elementName) >= 0)
            return xml.substring(xml.indexOf(elementName) + elementName.length() + 1, 
                    xml.lastIndexOf(elementName) - 2);
        else
            return null;
    }
public void post(字符串路径){
List postContent=newarraylist(2);
添加(新的BasicNameValuePair(“key”,DEV_key));
添加(新的BasicNameValuePair(“图像”,路径));
字符串url=”http://api.imgur.com/2/upload";
HttpClient HttpClient=新的DefaultHttpClient();
HttpContext localContext=新的BasicHttpContext();
HttpPost HttpPost=新的HttpPost(url);
试一试{
MultipartEntity=新的MultipartEntity(HttpMultipartMode.BROWSER_兼容);
对于(int index=0;index=0)
返回xml.substring(xml.indexOf(elementName)+elementName.length()+1,
xml.lastIndexOf(elementName)-2);
其他的
返回null;
}
最后我得到的只是一个HashMapMimageResponse,只有删除链接


关于我做错了什么,你有什么想法吗?

对这个问题的修复仅仅是将URL更改为:imgur.com/api/upload.xml

对这个问题的修复仅仅是将URL更改为:我知道这已经有一年了,但我得到了一个类,FileBody没有发现异常。你从哪里导入这个类的?我正在搜索一个android应用程序,它允许匿名上传和删除功能。在回答这个问题时,您是否正在开发这样的应用程序?如果是,是否可以在play store上使用?我已经尝试了六个应用程序,但没有一个在上传后提供删除链接-(谢谢!