-1

在 API 文档中它说

默认情况下,请求查找的结果在响应正文中以逐行键=值格式提供。例如,典型结果的格式可能如下:

--START:447777777777 status="ok" mcc="234" mnc="02"
operatorname="O2" isoalpha3code="GBR" END:447777777777--

所以,我向

http://api.txtnation.com/Networks/Lookup?username=user123&password=pwd123&
msisdn=447766551112

String addParam=java.net.URLEncoder.encode("username", "UTF-8")
                        + "="
                        + java.net.URLEncoder.encode(username, "UTF-8")
                        + "&"
                        + java.net.URLEncoder.encode("password", "UTF-8")
                        + "="
                        + java.net.URLEncoder.encode(password, "UTF-8")
                        + "&"
                        + java.net.URLEncoder.encode("msisdn", "UTF-8")
                        + "="
    + java.net.URLEncoder.encode(msisdn, "UTF-8")

java.net.URL msisdnLookup= new java.net.URL("http://api.txtnation.com/Networks
/LookUp/?"+addParam);

java.net.HttpURLConnection mmpostback = (java.net.HttpURLConnection) 
msisdnLookup.openConnection();
mmpostback.setDoOutput(true);
mmpostback.setRequestMethod("GET");

它向我显示 HTTP 响应:好的

System.out.println(mmpostback.getResponseMessage());

但以下显示我为NULL ..

status=request.getParameter("status");
mcc=request.getParameter("mcc");
mnc=request.getParameter("mnc");

我什至尝试读取参数和标题,但找不到上面的名称 - status、mcc、mnc、operatorname、isoalpha3code

如何在 jsp 中读取请求正文?请建议

4

1 回答 1

0

您发送的请求虽然不包含状态参数。如果您再次尝试使用用户名,您应该会成功。

request.getParameter("username")

根据您更新的答案,您应该查看响应而不是请求。

从 JSP 中,您如何发送 HTTP 请求?如果您使用的是 Ajax,那么您可以在成功处理程序中获得响应。

如果您使用的是 HttpClient ,那么您可以再次处理响应。

根据您的更新(使用 URLConnection),您可以使用 getHeaderField 方法

请参阅http://docs.oracle.com/javase/7/docs/api/java/net/URLConnection.html#getHeaderField(java.lang.String)

如果数据在您的响应正文中,那么您可以使用 URLConnection.getContent() 或 URLConnection.getInputStream()

另一种选择是使用更灵活且更易于使用恕我直言的 Apache HTTPClient 类。见http://hc.apache.org/httpclient-3.x/methods.html

于 2013-08-28T07:28:07.910 回答