Java 500-内部服务错误-带等式

Java 500-内部服务错误-带等式,java,android,httpurlconnection,Java,Android,Httpurlconnection,因此,我正在尝试在我的应用程序中实现eQSL实时api,我不断收到一个错误500,“您正在查找的资源有问题,无法显示”。我正在使用一个函数来帮助我写入表单,可以在上找到。我以前使用过这个库,它可以工作,只是不适用于eqslapi。我一辈子都搞不清楚我做错了什么。这是我的密码: multipart = new MultipartUtility( "http://www.eqsl.cc/qslcard/ImportADIF.cfm", "UTF-8"); multipart.add

因此,我正在尝试在我的应用程序中实现eQSL实时api,我不断收到一个错误500,“您正在查找的资源有问题,无法显示”。我正在使用一个函数来帮助我写入表单,可以在上找到。我以前使用过这个库,它可以工作,只是不适用于eqslapi。我一辈子都搞不清楚我做错了什么。这是我的密码:

multipart = new MultipartUtility(
        "http://www.eqsl.cc/qslcard/ImportADIF.cfm", "UTF-8");

multipart.addHeaderField("User-Agent", "Mozilla/5.0 ( compatible )");
multipart.addHeaderField("Accept","identity");
multipart.addFormField("EQSL_USER", mUserName);
multipart.addFormField("EQSL_PSWD", mPassword);

multipart.addFilePartOutputStream("Filename", "HamFinder_"
        + mCallSign + ".adi", new OutputStreamer() {
    @Override
    public void writeStream(OutputStream outputStream)
            throws IOException {
        BufferedOutputStream out = null;
        try {
            out = new BufferedOutputStream(outputStream);
            //Writes some output to out, I've done this way before, no problem.
        }  finally {
            out.close();
        }
    }
});
List<String> response = multipart.finish();
一些HTML代码是:

05-10 23:28:01.108: I/System.out(2456):   <h2>500 - Internal server error.</h2>
05-10 23:28:01.108: I/System.out(2456):   <h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
05-10 23:28:01.108:I/System.out(2456):500-内部服务器错误。
05-10 23:28:01.108:I/System.out(2456):您正在查找的资源有问题,无法显示。

知道我做错了什么吗?

检查服务器端日志。如果你不能,那么向网站维护人员报告

500错误意味着服务器(在某种意义上)已损坏


话虽如此,“接受身份”的东西是可疑的

    multipart.addHeaderField("Accept","identity");
客户端应该使用HTTP Accept头来告诉服务器它可以处理什么样的响应。标题值应为格式良好的媒体类型;e、 g.“文本/html”或“图像/png”或“应用程序/八位字节流”。通过提供垃圾值,您可能在服务器处理Accept标头时遇到了一个错误

参考:


更新

在评论中,您引用了一个bug报告,您声称该报告支持使用“Accept”来停止服务器发送压缩响应体。事实上,bug报告建议您使用“接受编码”。该标题与您正在使用的标题不同


因此,即使500错误的实际原因不同,您使用的“接受”是不正确的,不太可能达到您试图达到的目的。(很可能服务器不会默认发送压缩响应。)

我的问题似乎是有两个代理字段,
multipart.addHeaderField(“用户代理”,“Mozilla/5.0(兼容)”)和默认情况下在
MultiPart()
中添加的一个。删除一个修复了错误。

默认情况下,我使用“接受标识”来尝试绕过Android的GZIP压缩,但没有它,我会遇到同样的错误。不幸的是,我无法访问服务器日志。我很确定“接受身份”是假的。它说应该在哪里工作?请参阅我的更新。这是“接受编码”,而不是“接受”。对于投票表示信息不足的人,我很想知道还应该包括哪些内容。我已经发布了大部分代码、堆栈跟踪、api文档以及HTML错误日志的关键部分,我不确定还能包括哪些内容。。。
    multipart.addHeaderField("Accept","identity");