【问题标题】:Acra doesn't send JSON request to my own serverAcra 不向我自己的服务器发送 JSON 请求
【发布时间】:2014-09-18 12:38:51
【问题描述】:

我正在尝试在我的 Android 应用程序中实现 ACRA。我正在尝试通过 POST 使用 JSON 发送崩溃报告。为此,我配置了 ACRA 并创建了以下类:

import android.app.Application;

import org.acra.ACRA;
import org.acra.ReportField;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.*;
import org.acra.sender.HttpSender;


@ReportsCrashes(
        formUri = "https://mySite/myFolder/report.php",
        reportType = HttpSender.Type.JSON,
        httpMethod = HttpSender.Method.POST,
        formUriBasicAuthLogin = "username",
        formUriBasicAuthPassword = "password",
        formKey = "", // This is required for backward compatibility but not used
        customReportContent = {
                ReportField.APP_VERSION_CODE,
                ReportField.APP_VERSION_NAME,
                ReportField.ANDROID_VERSION,
                ReportField.PACKAGE_NAME,
                ReportField.REPORT_ID,
                ReportField.BUILD,
                ReportField.STACK_TRACE
        },
        mode = ReportingInteractionMode.SILENT)

public class Crazy extends Application {

    public void onCreate() {
        super.onCreate();
        ACRA.init(this);
    }

}

我目前正在自愿让我的应用程序崩溃,以测试 ACRA。当应用程序崩溃时,logcat 会向我显示该错误:

09-18 14:25:53.943  20309-20324/myPackage I/ACRA﹕ Sending file 1411042794000-approved.stacktrace
09-18 14:25:53.958  20309-20309/myPackage D/OpenGLRenderer﹕ Enabling debug mode 0
09-18 14:25:53.968  20309-20324/myPackage D/ACRA﹕ Connect to https://mySite/myFolder/report.php
09-18 14:25:53.983  20309-20312/myPackage D/dalvikvm﹕ GC_CONCURRENT freed 414K, 15% free 9757K/11399K, paused 13ms+13ms, total 58ms
09-18 14:25:54.008  20309-20324/myPackage D/ACRA﹕ Sending request to https://mySite/myFolder/report.php
09-18 14:25:54.153  20309-20324/myPackage E/ACRA﹕ Failed to send crash report for 1411042794000-approved.stacktrace
    org.acra.sender.ReportSenderException: Error while sending JSON report via Http POST
            at org.acra.sender.HttpSender.send(HttpSender.java:228)
            at org.acra.SendWorker.sendCrashReport(SendWorker.java:179)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:141)
            at org.acra.SendWorker.run(SendWorker.java:77)
     Caused by: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
            at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
            at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
            at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
            at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
            at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
            at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
            at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
            at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
            at org.acra.util.HttpRequest.send(HttpRequest.java:152)
            at org.acra.sender.HttpSender.send(HttpSender.java:225)
            at org.acra.SendWorker.sendCrashReport(SendWorker.java:179)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:141)
            at org.acra.SendWorker.run(SendWorker.java:77)
09-18 14:25:54.153  20309-20324/myPackage D/ACRA﹕ #checkAndSendReports - finish

我该如何解决这个问题?

坦克!

【问题讨论】:

    标签: acra


    【解决方案1】:

    简单的解决方案是通过 HTTP 而不是 HTTPS 发送。

    但我认为真正的问题是您没有正确安装服务器的 SSL 证书。看起来它缺少一些中间证书。见Android SSL - No Peer Certificate

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      相关资源
      最近更新 更多