Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中通过Web服务发送短信_Android_Android Asynctask - Fatal编程技术网

在Android中通过Web服务发送短信

在Android中通过Web服务发送短信,android,android-asynctask,Android,Android Asynctask,我正在尝试使用webservice呼叫发送SMS。但我这样做是有错误的 这是我正在使用的代码片段 public void sendSMS(String from, String to, String msg) { if (stat == -1) { sms_url = username + "&password=" + password + "&from=" + from + "&to=" +

我正在尝试使用webservice呼叫发送SMS。但我这样做是有错误的

这是我正在使用的代码片段

public void sendSMS(String from, String to, String msg) {
        if (stat == -1) {
            sms_url = username + "&password=" + password + "&from=" + from
                    + "&to=" + to + "&message=" + msg + "";
            new SendSMS().execute(sms_url);
        }
    }

private class SendSMS extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {

            for (String url : urls) {
                HttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                    HttpResponse execute = client.execute(httpGet);
                    InputStream content = execute.getEntity().getContent();

                    BufferedReader buffer = new BufferedReader(
                            new InputStreamReader(content));
                    String s = "";
                    while ((s = buffer.readLine()) != null) {
                        result += s;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }

        @Override
        protected void onPostExecute(String result) {
            // textView.setText(result);
            Intent intent = new Intent("com.sms.subsahara.CONFIRMACTIVITY");
            startActivity(intent);
        }
    }

    class PostService extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {

            Login();
            Log.d(LOGTAG, "Success");

            return "success";
        }

        @Override
        protected void onPostExecute(String r) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            String msg = "Login successful";

            if (MenuActivity.status == 2) {
                Log.d(LOGTAG, result);
                Log.d(LOGTAG, error + " " + uid + " " + langId + " " + rank);

            } else if (SendUsing.status == 0) {
                if (result.substring(0, 16).trim().equals(msg)) {
                    Log.d(LOGTAG, " " + "Connection Test" + result);

                    stat = -1;
                    String from = composesms.sender;
                    String to = composesms.phoneNo;
                    String message = composesms.message;
                    sendSMS(from, to, message);
                    Log.d(LOGTAG, result);
                    // new SendSMS().execute(params);

                } else {
                    Toast.makeText(getBaseContext(),
                            "Login UnSuccesful. Check Username or password",
                            Toast.LENGTH_SHORT).show();
                }

            }
        }
问题是,当我这样做时,我会得到以下异常

java.lang.IllegalStateException: Target host must not be null, or set in parameters.
   at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:561)
   at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
 freed 4919 objects / 298512 bytes in 153ms
   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
   at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
   **at com.sms.subsahara.WebMessengerActivity$SendSMS.doInBackground(WebMessengerActivity.java:272)
   at com.sms.subsahara.WebMessengerActivity$SendSMS.doInBackground(WebMessengerActivity.java:1)**
请问我该如何解决这个问题

sms_url = username + "&password=" + password + "&from=" + from
                    + "&to=" + to + "&message=" + msg + "";
看起来这行代码只生成url的参数,而不是完整的url

 sms_url = "http://your_serviceurl.com?"+sms_url;

您是否缺少一些代码片段,没有我可以看到添加到
sms\u URL
中的实际URL(带有
http://
)。此错误通常发生在您错过了http://或者即使您添加了,但对整个url进行了编码(包括http://)时。
 sms_url = "http://your_serviceurl.com?"+sms_url;