将视频从java上传到php服务器时出错

时间:2014-11-08 10:08:03

标签: java http

我正在开发一个可以将视频发送到php服务器的java应用程序。 我在android上完成了它,下面的代码在android上运行完美但是现在当我在纯java(不是android)中尝试这个代码时,我得到了异常。 这是我将java视频上传到php的桌面代码

try {

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "http://b....vedioup.php");

        FileBody filebodyVideo = new FileBody(new File(Path));
        StringBody title = new StringBody("Filename: " + Path);
        StringBody description = new StringBody(
                "This is a description of the video");

        MultipartEntity reqEntity = new MultipartEntity();
        reqEntity.addPart("videoFile", filebodyVideo);
        reqEntity.addPart("title", title);
        reqEntity.addPart("description", description);
        httppost.setEntity(reqEntity);

        // DEBUG
        System.out
                .println("executing request " + httppost.getRequestLine());
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();

        // DEBUG
        System.out.println(response.getStatusLine());
        if (resEntity != null) {
            System.out.println(EntityUtils.toString(resEntity));
        } // end if

        if (resEntity != null) {
            resEntity.consumeContent();
        } // end if

        httpclient.getConnectionManager().shutdown();

    } 

这是控制台中的输出。

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:187)
at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:146)
at BlankFoem.uploadFile(BlankFoem.java:351)

很明显,它没有找到类的例外但我该如何修复它。

谢谢

3 个答案:

答案 0 :(得分:1)

您使用的是已弃用的类DefaultHttpClient。这是它的API Documentation。正如您所看到的,它被标记为已弃用,他们建议改为使用HttpClientBuilder

使用不推荐的类调用需要日志工厂的父类(也已弃用)。我假设你的类路径中没有安装apache.commons.logging jar,因此你得到了这个特殊的异常。

最好使用HttpClientBuilder,而不是安装日志jar。

它在android上运行的原因是因为你可能在那里有一个旧版本的apache HttpClient库。

以下是新Apache HTTP Components library的链接,包括所有文档和下载。

答案 1 :(得分:1)

只需将此jar文件apache.commons.logging添加到您的项目中即可完成

答案 2 :(得分:0)

哦,你只需添加

apache.commons.logging jar

进入你的项目。 傻