下面是使用HTTP GET请求将注册ID发送到服务器的示例代码。我正在使用org.apache.http.*
库的类。它假定您的服务器上有一个页面,该页面接受名为regId的参数中的注册ID(示例中它是一个jsp
页面,但它可以是您服务器中任何内容的PHP
)。您必须添加错误处理代码并解析服务器响应才能完成此示例。
String responseString= null;
try {
URI url = new URI ("http://your-server-domain/your-server-page.jsp?regId="+THE_REGISTRATION_ID);
HttpGet httpGet = new HttpGet (url);
// defaultHttpClient
HttpParams
httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int
timeoutConnection= 3000;
HttpConnectionParams.setConnectionTimeout (
httpParameters,
timeoutConnection
);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout (
httpParameters,
timeoutSocket
);
DefaultHttpClient
httpClient = new DefaultHttpClient (httpParameters);
HttpResponse
httpResponse = httpClient.execute (httpGet);
HttpEntity
httpEntity = httpResponse.getEntity();
if (httpResponse.getStatusLine().getStatusCode() != 200)
{
Log.e (
_context.getString(R.string.app_name),
"Server Call Failed : Got Status Code " + httpResponse.getStatusLine().getStatusCode() + " and ContentType " + httpEntity.getContentType().getValue()
);
// add code to handle error
}
responseString = EntityUtils.toString (httpEntity);
} catch (UnsupportedEncodingException e) {
Log.e(_context.getString(R.string.app_name),e.toString(),e);
// add code to handle error
} catch (ClientProtocolException e) {
Log.e(_context.getString(R.string.app_name),e.toString(),e);
// add code to handle error
} catch (IOException e) {
Log.e(_context.getString(R.string.app_name),e.toString(),e);
// add code to handle error
} catch (URISyntaxException e) {
Log.e(_context.getString(R.string.app_name),e.toString(),e);
// add code to handle error
}
工作正常!因为我在Web服务器上使用servlet来处理注册请求,所以我在HTTP GET请求中使用'URI url = new URI(“http:// server-domain/register?regId =”+ THE_REGISTRATION_ID);''。并确保在我的服务器应用程序的web中有 RegisterServlet servlet-name> /register url-pattern> servlet-mapping> .xml文件。 –
faizal
你是如何实现你的http服务器以便它接受注册ID的? – 2014-06-03 15:41:14
@ user2320244在这里回答太长了。你应该首先选择你希望实现你的服务器的语言(Java Servlet,JSP,PHP,.NET等)。 – Eran