有没有一种方法可以只使用Java SE API在Java中创建一个非常基本的HTTP服务器(只支持GET/POST),而不需要编写代码来手动解析HTTP请求和手动格式化HTTP响应?Java SE API很好地将HTTP客户端功能封装在HttpURLConnection中,但是是否有类似的HTTP服务器功能呢?
为了清楚起见,我在网上看到的许多ServerSocket示例的问题是,它们自己进行请求解析/响应格式化和错误处理,这很乏味、容易出错,而且不太可能是全面的,因此我正在努力避免这种情况。
我正在编写一个java应用程序,它向服务器发送post请求,并期望来自服务器的json。现在,当我需要从服务器获取响应时,我是否只需要在http代码为200 (HTTP OK)时从inputStream获取响应,或者是否存在任何其他情况?,例如:
//...
if (urlConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
// only here try to get the response
}
//...
我使用自己的自定义java库通过点击urls从服务器读取响应。我已经编写了一个独立的java程序来检查库是否正常工作,并且我得到了所有urls的肯定响应。但是当我试图在我的android代码中使用相同的java库时,它抛出了一个异常。
Exception:
Could not find class 'org.apache.http.impl.conn.PoolingClientConnectionManager', referenced from method com.nq.client.comm.HttpClientHelper.<init>.
java.lang
我正在开发一个通过JSON消息与服务器通信的应用程序。
某些消息已正确发送和接收结果。但是我的一个例程抛出了一个错误,我不确定这是我的问题还是服务器的问题。
错误是:
org.apache.http.client.HttpResponseException: Internal Server Error
at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:71)
at org.apache.http.impl.client.BasicResp
我想知道是否是反序列化服务器响应的方法。因此,在我的例子中,我有一个LinkedHashMap<String,Date>,并从服务器重放它:
@Override
public LinkedHashMap<String, Date> testHMap() {
LinkedHashMap<String, Date> map = new LinkedHashMap<>();
map.put("AA", new Date());
map.put("BB", new