Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接/验证基于XML的Ruby on Rails网站的安全性时出现问题_Java_Android_Ruby On Rails_Xml - Fatal编程技术网

Java 连接/验证基于XML的Ruby on Rails网站的安全性时出现问题

Java 连接/验证基于XML的Ruby on Rails网站的安全性时出现问题,java,android,ruby-on-rails,xml,Java,Android,Ruby On Rails,Xml,我在连接基于XML的RubyonRails网站时遇到了很大的问题 我尝试过多种方法,但不管怎样,我总是会遇到这样或那样的问题 我需要做的是,连接到一个网站,发布登录和密码,然后从网站获取返回值(看看登录是否成功)。在某种程度上,它将成为一个Android应用程序,但在一开始,我只希望它能在Java中工作 我目前的做法是(为隐藏IP而道歉): publicstaticvoidconnect(){ @SuppressWarnings({“弃用”、“资源”}) HttpClient HttpClien

我在连接基于XML的RubyonRails网站时遇到了很大的问题

我尝试过多种方法,但不管怎样,我总是会遇到这样或那样的问题

我需要做的是,连接到一个网站,发布登录和密码,然后从网站获取返回值(看看登录是否成功)。在某种程度上,它将成为一个Android应用程序,但在一开始,我只希望它能在Java中工作

我目前的做法是(为隐藏IP而道歉):

publicstaticvoidconnect(){
@SuppressWarnings({“弃用”、“资源”})
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“https://93...145/login");
List nameValuePair=新的ArrayList(2);
添加(新的BasicNameValuePair(“登录”,“名称”));
添加(新的BasicNameValuePair(“密码”、“密码”));
试一试{
setEntity(新的UrlEncodedFormEntity(nameValuePair));
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
试一试{
HttpResponse response=httpClient.execute(httpPost);
//将响应写入日志
System.out.println(“Http Post响应:+Response.toString());
//Log.d(“Http Post响应:,Response.toString());
}捕获(客户端协议例外e){
//日志异常
e、 printStackTrace();
}捕获(IOE异常){
//日志异常
e、 printStackTrace();
}
}
该网站是一个开发服务器,因此我在打开页面时会收到“无效证书”消息,这在Java中会造成更大的问题。我使用以下方法成功生成“有效”证书:

但我还有一个问题:

javax.net.ssl.SSLException: Certificate for <93...145> doesn't match common name of the certificate subject: dev-...no
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:172)
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:569)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:544)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at Tilkobling.connect(Tilkobling.java:133)
at Tilkobling.main(Tilkobling.java:33)
javax.net.ssl.SSLException:的证书与证书主题的通用名称不匹配:dev-…否
位于org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:172)
位于org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
位于org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140)
位于org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
位于org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:569)
位于org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:544)
位于org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409)
位于org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
位于org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
位于org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
位于org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
位于org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
在org.apache.http.impl.client.CloseableHttpClient.execute上(CloseableHttpClient.java:82)
在org.apache.http.impl.client.CloseableHttpClient.execute上(CloseableHttpClient.java:107)
在org.apache.http.impl.client.CloseableHttpClient.execute上(CloseableHttpClient.java:55)
在Tilkobling.connect(Tilkobling.java:133)
位于Tilkobling.main(Tilkobling.java:33)
那么基本上,有没有更简单的方法

我想做的其实很简单:

  • 连接到站点
  • 登录后详细信息
  • 请参阅返回消息(如果登录成功,则返回消息将是包含用户信息的XML)

  • 任何输入都将不胜感激。

    Hmm,您尝试发送HTTPS请求,但url包含IP而不是域。HTTPS客户端似乎无法验证您的自签名证书,因为证书包含服务器域,但您使用的是IP。要使用HTTPS,您需要有域名或使用假域名(请参阅)
    javax.net.ssl.SSLException: Certificate for <93...145> doesn't match common name of the certificate subject: dev-...no
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:172)
    at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:140)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
    at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:569)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:544)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at Tilkobling.connect(Tilkobling.java:133)
    at Tilkobling.main(Tilkobling.java:33)