我有一个应用程序可以调用网络服务来获取 PNR 状态。但我是创建 Web 服务的新手,所以我通过一些视频和示例了解如何创建和使用 Web 服务。
我在stackoverflow上发现了一个问题 https://stackoverflow.com/questions/14598485/need-indian-railway-apis-for-making-app-for-pnr-status-train-info-etc以及此问题中提供的所有链接我得到了这个: http: //pnrapi.alagu.net/。
我的代码是:
XML:activity_status_pnr.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText android:id="@+id/et_pnr"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/h"
android:maxLength="10" />
<Button android:id="@+id/pnr_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gstatus"
android:layout_gravity="center" />
</LinearLayout>
JAVA代码:StatusPNR.java
package com.example.infopnr;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
public class StatusPNR extends Activity {
String URL = "http://pnrapi.alagu.net/api/v1.0/pnr/UR_PNR_CODE";
String result = "";
//String deviceId = "xxxxx" ;
//final String tag = "Your Logcat tag: ";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_status_pnr);
final EditText txtSearch = (EditText)findViewById(R.id.et_pnr);
txtSearch.setOnClickListener(new EditText.OnClickListener()
{
public void onClick(View v){txtSearch.setText("");}
});
final Button btnSearch = (Button)findViewById(R.id.pnr_status);
btnSearch.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
String query = txtSearch.getText().toString();
PNRWebService(query);
}
});
}
private void PNRWebService(String q){
}
}
我还没有创建 web-service 方法,因为我在这里遇到了一些问题。在某些网站上,我读到 Apache web-server 应该用于获取 HTTP 客户端。但是,我不确定,也不知道为什么?
我的问题是:
1)他们是否需要安装任何东西来获得网络服务器,或者我们的编码足以调用网络服务而无需事先安装任何东西?
2) 在 PNRWebService() 方法中,我需要做什么才能获得连接并使用 URL 调用服务?我知道我需要通过 HTTPClient 建立连接,但是在浏览了许多示例和视频之后,我不知道他们实际上是如何做到的?
3) http://pnrapi.alagu.net/参考本网站我正在尝试获取 PNR 状态?将其称为我需要做的事情,因为我不知道其中的 URL 是什么,以及在获取 URL 后我还应该做什么?
4) 我从 Apache 导入了一些包,不知道值不值?
如果有人有很好的知识,请帮助大家,然后请让我知道如何执行。