2014-09-18 2 views
3

Я пытаюсь реализовать ACRA в своем приложении для Android. Я пытаюсь отправить отчет о сбое с помощью JSON через POST. Для этого я настроил Acra и создал следующий класс:Acra не отправляет запрос JSON на мой собственный сервер

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 

Как я могу решить эту проблему?

Цистерны!

ответ

0

Простым решением является передача через HTTP вместо HTTPS.

Но я думаю, что настоящая проблема заключается в том, что вы не установили SSL-сертификат своего сервера правильно. Похоже, что некоторые из его промежуточных сертификатов отсутствуют. См. Android SSL - No Peer Certificate

+0

Хорошо, спасибо! – Kappa

Смежные вопросы