我正在尝试从Andorid版本4.1.1中的Android应用程序连接到URL,我收到了问题标题中指出的错误,但是当我尝试从Andorid版本4.0.4或3.1连接相同的URL时一切正常.
代码片段:
try {
.
.
.
URL url = new URL(urlStr);
Log.i(TAG,"[ URL ] " + urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
int size = conn.getContentLength();
int responsecode = conn.getResponseCode();
Log.d(TAG, "Responsecode: " + responsecode);
.
.
.
} catch (Exception e) {
e.printStackTrace();
}
private static void trustAllHosts() {
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
public …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Android应用程序,我在其中发送数据到Web服务,但我收到javax.net.ssl.SSLException的错误:证书中的主机名不匹配android这里是我的代码
AsyncHttpClient clien= new AsyncHttpClient();
Log.i("URL", String.valueOf(base_url+"Race.svc/json/Race/Scanners/Add/"+series_event_raceid+"/"+qrCode));
clien.put(base_url+"Race.svc/json/Race/Scanners/Add/"+series_event_raceid+"/"+qrCode, new AsyncHttpResponseHandler() {}
Run Code Online (Sandbox Code Playgroud)
其中series_event_raceid = 103和qrcode = R12g***
有人请帮助我
这是我的logcat
08-18 10:06:24.272: W/System.err(5297): javax.net.ssl.SSLException: hostname in certificate didn't match: <development.racerunner.com> != <racerunner.com> OR <racerunner.com>
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:185)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:54)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:95)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-18 10:06:24.272: W/System.err(5297): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
08-18 10:06:24.272: W/System.err(5297): …Run Code Online (Sandbox Code Playgroud) 我想开发类似蓝牙LE外围设备的应用程序,它在与蓝牙LE中央设备连接时停止广告,并限制连接多个蓝牙LE中心的蓝牙LE外围设备.
一个蓝牙LE外围设备一次只能连接一个蓝牙LE中央设备.蓝牙LE外设和蓝牙LE中心成功连接后,其他蓝牙LE中央设备无法扫描
直到现在我尝试下面的代码:
private final BluetoothGattServerCallback mGattServerCallback = new BluetoothGattServerCallback() {
@Override
public void onServiceAdded(int status, BluetoothGattService service) {
super.onServiceAdded(status, service);
}
@Override
public void onConnectionStateChange(BluetoothDevice device, final int status, int newState) {
super.onConnectionStateChange(device, status, newState);
if (status == BluetoothGatt.GATT_SUCCESS) {
if (newState == BluetoothGatt.STATE_CONNECTED) {
mBluetoothDevices.add(device);
// Bluetooth LE peripheral stop advertising on connect with Bluetooth LE central device
mAdvertiser.stopAdvertising(mAdvCallback);
Log.v(TAG, "Connected to device: " + device.getAddress());
} else if (newState == BluetoothGatt.STATE_DISCONNECTED) {
mBluetoothDevices.remove(device);
Log.v(TAG, "Disconnected from device"); …Run Code Online (Sandbox Code Playgroud)