URIでRestfull WebServiceスローエラーを呼び出します
-
27-10-2019 - |
質問
Android Webサービスをいくつかのパラメーターに渡すというロジックを書きました。問題は、クエリを送信すると、XMLとして取得しているエラーメッセージを返します。私が呼びたいURLはですhttp://192.168.1.10:8080/ymaws/Resources/RestaurantCityId = 33498&areanm=vasant viharしかし、私はエラーを取得しています。コードは以下にあります。 PLZはこれを行う良い方法を示唆しています
String list = null;
restaurantnames=new ArrayList<String> ();
areanames=new ArrayList<String>();
restaurantidlist=new ArrayList<String>();
final HttpClient client=new DefaultHttpClient();
String url = "http://192.168.1.10:8080/ymaws/resources/restaurant?cityid="+cityid+"&areanm="+area.getSelectedItem().toString();
String encodedurl = null;
try
{
encodedurl = URLEncoder.encode(url,"UTF-8");
}
catch (UnsupportedEncodingException e1)
{
e1.printStackTrace();
}
Log.i("TEST", encodedurl);
final HttpGet req=new HttpGet(encodedurl);
HttpResponse httpResponse;
try {
httpResponse=client.execute(req);
HttpEntity entity = httpResponse.getEntity();
Log.i("entity", entity.toString());
if (entity != null)
{
InputStream instream = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
StringBuilder sb = new StringBuilder();
String line = null;
try
{
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
instream.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
// Closing the input stream will trigger connection release
list= sb.toString();
Log.i("list xml is", list.toString());
解決
単に「アンプ」を追加してみてください。 「&」サインの後。 (それが "&" heheだけになったので、一緒に書くことができませんでした):)
他のヒント
これには、ApacheのOpenSource Libsを使用する必要がある場合がありますが、すべてのコードで機能します。
public static String getHTTP(String url) throws ClientProtocolException, IOException {
String result = "";
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
// Execute HTTP Get Request
result = httpclient.execute(httpget, responseHandler);
return result;
}
必要なLIBは次のとおりです。
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.ClientProtocolException;
import java.io.IOException;
Apache HTTPクライアントジャーを入手できます ここ
所属していません StackOverflow