Android:Http通过ip向服务器虚拟主机发送请求

时间:2014-02-03 13:19:03

标签: android jboss httpconnection

如何通过HTTP使用HTTPUrlConnection或其他连接类型请求jboss服务器虚拟主机?

我尝试了什么: - 使用虚拟主机别名(Host:jboss.local.virtual.host)向http请求添加标头 - 无效。

问题是我添加了“Host:jboss.local.virtual.host”并且它给了我:无法解析主机“jboss.local.virtual.host”:没有与主机名关联的地址。

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

<强> 1。定义您的客户:

HttpParams params = new BasicHttpParams();

// For instance, you could set timeout
HttpConnectionParams.setConnectionTimeout(params, 10000);

HttpClient client = new DefaultHttpClient(params);

<强> 2。创建请求:

HttpGet request = new HttpGet("your URL");

第3。执行请求:

HttpResponse response = client.execute(request);

// And now, for example, get the status code and the server response body
int status = httpResponse.getStatusLine().getStatusCode();
HttpEntity body = response.getEntity();

请注意,这是一个关于GET请求的示例。你可以使用任何其他的Http方法。

在这里,您可以看到另一个示例:http://www.androidsnippets.com/executing-a-http-post-request-with-httpclient

答案 1 :(得分:0)

由我解决:

    final SSLSocketFactory sslFactory = getSSLSocketFactory();
    final Socket socket = sslFactory.createSocket(IP, PORT);

    final int contentLenght = request.renderSafe().

    final PrintWriter pw = new PrintWriter(socket.getOutputStream());
    pw.println(FIRST_HTTP_HEADER);
    pw.println(HOST);
    pw.println(CONTENT_TYPE);
    pw.println(CONTENT_LENGTH + ":" + contentLenght);
    pw.println("");
    pw.println(request);
    pw.flush();

只有这个解决方案适合我。