2016-10-17 9 views
1

ブラウザでそのURLを実行すると、smsを送信するURLがあります。私はjavaでこれを試しました。以下は私のコードです:ブラウザでURLを実行していて、ブラウザを開かずにJavaを使用しています

URL myURL = new URL("http://example.com/"); 
URLConnection myURLConnection = myURL.openConnection(); 
myURLConnection.connect(); 

私はブラウザを開かずにURLを実行します。しかし、問題は、私は任意のSMSを(つまり、コードが動作していない)recivingされていないです。私は絶望的にブラウザでURLを実行しようとし、私はSMSを受信したので、URLに問題はありません。上のコードは、インターネットからの参照に基づいています。どんな助けも訴えられる。私は解決策のために完全に間違った道にいると私を訂正する。

+1

あなたのURLはどのように返されますか?特定のリクエストヘッダーが必要ですか? URLに接続する前にすべてを確認してください。 –

+0

私はjavaを初めて使っています。私のURLは、sms要求が受け入れられるウェブページ上でいくつかの確認を返します。 –

答えて

1

あなたのコードの問題は、あなたが実際にシーンの背後にある要求を起動する何であるgetInputStream()getContent()またはgetHeaderField()を呼び出すことはありませんということです。

これを試してみてください:

URL myURL = new URL("http://example.com/"); 
URLConnection myURLConnection = myURL.openConnection(); 
try (InputStream is = myURLConnection.getInputStream()) {} 

それとも単に:

URL myURL = new URL("http://example.com/"); 
URLConnection myURLConnection = myURL.openConnection(); 
myURLConnection.getContentLength(); // -> calls getHeaderField("content-length") 

NB:上記の 3つの方法は、自動的にそうもう明示的に呼び出す必要がconnect()を呼び出しません。

0
public String SendSMS() { 
     StringBuilder sURL = new StringBuilder(100); 
     StringBuilder sb = new StringBuilder(); 
     try { 
      sURL.append("http://example.com/"); 
      InputStream is = new URL(sURL.toString()).openStream(); 
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); 
      int cp; 
      while ((cp = rd.read()) != -1) { 
       sb.append((char) cp); 
      } 
     } catch (MalformedURLException me) { 
      System.out.println("## MalformedURLException occured" + me.getMessage()); 
     } catch (UnsupportedEncodingException me) { 
      System.out.println("## UnsupportedEncodingException occured : " + me.getMessage()); 
     } catch (IOException me) { 
      System.out.println("## IOException occured in : " + me.getMessage()); 
     } catch (Exception me) { 
      System.out.println("## Exception occured : " + me.getMessage()); 
     } 
     return sb1.toString(); 
    } 
+0

私はjavaを初めて利用しています。あなたはypourコードを簡単に説明できますか? –

+0

@prateekk URLに接続するための簡単なコードを書いています。メソッドSendSMSはフォームサーバーを受け取る文字列の値を返します。それ以外の場合は可能な例外がすべて発生します –

+0

@prateekkサービスやプログラムに何か問題がある場合は、ペーストして戻り値をチェックしてチェックする –

0

Apache HttpClientユーティリティを使用すると便利です。

は、次のMavenの依存関係を追加します。

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.5.2</version> 
</dependency> 

次は、HTTP GETメソッドを使用してURLをヒットするには、次のコードを使用します。

//create the url 
String url = "http://www.google.com/search?q=httpClient"; 

//create the http client object 
HttpClient client = HttpClientBuilder.create().build(); 
HttpGet request = new HttpGet(url); 
//execute the request and capture the response 
HttpResponse response = client.execute(request); 

//get response code 
System.out.println("Response Code : " 
       + response.getStatusLine().getStatusCode()); 
//get the response body 
BufferedReader rd = new BufferedReader(
    new InputStreamReader(response.getEntity().getContent())); 

//capture the response in string 
StringBuffer result = new StringBuffer(); 
String line = ""; 
while ((line = rd.readLine()) != null) { 
    result.append(line); 
} 

付加的な利点は、URLがダウンした場合のHttpClientは、自動的にURLを打つ再試行です。また、リトライイベントハンドラを提供します。

参考:Force retry on specific http status code

関連する問題