サービスコールのための非同期タスクを使用しています。このサービスは私が呼び出してjsonデータを取得する必要があるサードパーティ製で、私はこのコードを使用するために他のもののために移動する必要があります。MalformedURLException :?
private class FetchJsonData extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
// These two need to be declared outside the try/catch
// so that they can be closed in the finally block.
HttpURLConnection urlConnection = null;
BufferedReader reader = null;
// Will contain the raw JSON response as a string.
String forecastJsonStr = null;
try {
// Construct the URL for the OpenWeatherMap query
// Possible parameters are avaiable at OWM's forecast API page, at
// http://openweathermap.org/API#forecast
URL url = new URL("android-app://ir.com.irremote.ir.com.irremote.activity/http/" + "api.abc.com/TVlistings/v9/listings/services/postalcode/37215/info?locale=en-US&countrycode=US&format=json&apikey=abc");
urlConnection = (HttpURLConnection) url.openConnection();
// Create the request to OpenWeatherMap, and open the connection
urlConnection.setRequestMethod("GET");
urlConnection.connect();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
// Read the input stream into a String
InputStream inputStream = urlConnection.getInputStream();
StringBuffer buffer = new StringBuffer();
if (inputStream == null) {
// Nothing to do.
return null;
}
reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
// Since it's JSON, adding a newline isn't necessary (it won't affect parsing)
// But it does make debugging a *lot* easier if you print out the completed
// buffer for debugging.
buffer.append(line + "\n");
}
if (buffer.length() == 0) {
// Stream was empty. No point in parsing.
return null;
}
forecastJsonStr = buffer.toString();
return forecastJsonStr;
} catch (IOException e) {
Log.e("PlaceholderFragment", "Error ", e);
// If the code didn't successfully get the weather data, there's no point in attemping
// to parse it.
return null;
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (final IOException e) {
Log.e("PlaceholderFragment", "Error closing stream", e);
}
}
}
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("json", "" + s);
}
}
その後、私は(のonCreateにexcute)が、それは、ここでログイン置く.I来る理由を私は知らない私にいくつかの例外を与え、この参照してください。
致命的な例外:メイン プロセスを:ir.dumadu.com.irremote、PID:20759 java.lang.RuntimeException:アクティビティを停止できません{ir.dumadu.com.irremote/ir.dumadu.com.irremote.ir.dumadu.com.irremote.activity。 ChoseTransmitter}:java.lang.IllegalArgumentException:AppIndex:URIホストはパッケージ名と一致し、形式(android-app://// [host_path])に従わなければなりません。提供されたURI:android.app.ActivityThread.handleSleeping(ActivityThread.java:4679) android.app.ActivityThread.access $ 3400(ActivityThread.java:211)android.os.Handler.dispatchMessage(Handler.java:102)の とandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1934) android.os.Looper.loop(Looper.java:145) android.app.ActivityThread.main(ActivityThread.java:6946) at java.lang.reflect.Method.invoke(ネイティブメソッド) at java。 lang.reflect.Method.invoke(Method.java:372)com.android.internal.os.ZygoteInitで$ MethodAndArgsCaller.run(ZygoteInit.java:1404) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) で発生:java.lang。 IllegalArgumentException:AppIndex:URIホストはパッケージ名と一致し、形式(android-app://// [host_path])に従わなければなりません。提供されたURI:android-app://ir.dumadu.com.irremote.ir.dumadu.com.irremote.activity/http/host/path at com.google.android.gms.internal.zzju.zzb(不明な情報源) com.google.android.gms.internal.zzju.zza(不明な情報源) com.google.android.gms.internal.zzjt.zza(不明な情報源) com.google.android.gms.internal .zzju.zza(不明な情報源) com.google.android.gms.internal.zzju.end(不明な情報源) at ir.dumadu.com.irremote.ir.dumadu.com.irremote.activity.ChoseTransmitter.onStop (ChoseTransmitter.java:169) android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1305) at andro idroid.app.Activity.performStop(Activity.java:6777)android.app.ActivityThread.handleSleeping(ActivityThread.java:4676)の android.app.ActivityThread.accessの $ 3400(ActivityThread.java:211) at android .app.ActivityThread $ H.handleMessage(ActivityThread.java:1934) とandroid.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) でandroid .app.ActivityThread.main(ActivityThread.java:6946) at java.lang.reflect.Method.invoke(ネイティブメソッド)
ここで私はこのURLを使用していますyバックエンドURL。このURLは私たちにいくつかのサービスプロバイダーを与えました.WebブラウザでこのURLをヒットしたら、私はjson形式のデータを与えました。私はモバイルアプリケーションを呼び出すとlog.ifよりも上にあるので、あなたが私に間違いなく答える何らかの方法をしてください。ありがとうございます。
有効なURLを文字列として追加する必要があります。例:URL url =新しいURL( "http://fb.com/"); –
今私は解決策を得ました:まず、特定のURLに文字列変数を作成する必要があります。好き。 String urlStr = "http://whatever.com"; URL url =新しいURL(urlStr);それでは仕事 – user6615010