且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何调用服务器应用程序的servlet从Android应用程序实施GCM时,需要注册设备

更新时间:2023-12-04 14:19:58

下面是一个示例$ C $下使用HTTP GET请求发送的注册ID为您的服务器。我使用的类 org.apache.http的。* 库。它假定你有你的服务器上的页面,接受一个名为REGID参数的注册ID(样品中它是一个的jsp 页,但它可以是 PHP 的无论你在你的服务器上)。你必须添加错误处理code和服务器响应的解析,以完成此示例。

Here's a sample code for sending the registration ID to your server using an HTTP GET request. I'm using classes of the org.apache.http.* library. It assumes you have a page on your server that accepts the registration ID in a parameter called regId (in the sample it's a jsp page, but it can be PHP of whatever you have in your server). You'll have to add error handling code and parsing of the server response in order to complete this sample.

  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
  }