如何在Android中解决这个错误? java.net.MalformedURLException:未find协议:

我不知道什么是确切的问题,但我得到的错误,即使我也检查所有path,这是正确的,但仍然会得到错误。

java.net.MalformedURLException:未find协议:www.w3schools.com/webservices/tempconvert.asmx

我的代码:

package com.example.mytest; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.AndroidHttpTransport; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.TextView; @SuppressWarnings("deprecation") public class MainActivity extends Activity { private final String SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit"; private final String METHOD_NAME = "CelsiusToFahrenheit"; public final String NAMESPACE = "http://tempuri.org"; public String URL = "www.w3schools.com/webservices/tempconvert.asmx"; TextView tv; public static String TAG = "MyTest"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "MainActivity Started"); tv = (TextView) findViewById(R.id.txt1); SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME); Request.addProperty("Celsius", "32"); // URL=URL.replaceAll(" ", "%20"); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.setOutputSoapObject(Request); Log.d(TAG, "URL:"+URL); AndroidHttpTransport aht = new AndroidHttpTransport(URL); try { // HttpTransportSE aht = new HttpTransportSE(URL); Log.d(TAG, "aht:" + aht); aht.call(SOAP_ACTION, soapEnvelope); SoapPrimitive resultString = (SoapPrimitive) soapEnvelope .getResponse(); // Object resultString = (Object)soapEnvelope.getResponse(); Log.d(TAG, "result String=" + resultString); tv.setText("Status: " + resultString); } catch (Exception e) { Log.d(TAG, "Error: ", e); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

我不知道什么是确切的问题,但我得到如下错误:

 02-01 21:07:01.264: D/MyTest(1068): MainActivity Started 02-01 21:07:01.534: D/MyTest(1068): Error: 02-01 21:07:01.534: D/MyTest(1068): java.net.MalformedURLException: Protocol not found: www.w3schools.com/webservices/tempconvert.asmx 02-01 21:07:01.534: D/MyTest(1068): at java.net.URL.<init>(URL.java:275) 02-01 21:07:01.534: D/MyTest(1068): at java.net.URL.<init>(URL.java:159) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.ServiceConnectionSE.<init>(ServiceConnectionSE.java:65) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.ServiceConnectionSE.<init>(ServiceConnectionSE.java:61) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.AndroidServiceConnection.<init>(AndroidServiceConnection.java:27) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.AndroidHttpTransport.getServiceConnection(AndroidHttpTransport.java:35) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:124) 02-01 21:07:01.534: D/MyTest(1068): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95) 

Solutions Collecting From Web of "如何在Android中解决这个错误? java.net.MalformedURLException:未find协议:"

www...https://之前添加http:// https://

 public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx"; 

你错过了协议http://

 public String URL = "http://www.w3schools.com/webservices/tempconvert.asmx"; 

注意:
如果你只需要从摄氏温度转换为法兰西反过来,你可以试试这个:

 function C2F ( C ) { var F = eval ((C x 9 / 5) +32) return ( F ); } function F2C ( F ) { var C = eval ( F - 32 ) * 5 / 9; return ( C ); }