1

サードパーティの SMS アプリケーションの統合に取り組んでいます。要件は、私のサイトの Web ページのボタンを1 回クリックするだけで、 10 の携帯電話番号に SMS を送信することです。

送信する電話番号とメッセージを追加する必要がある URL が提供されています。URL は、一度に 1 つの電話番号のみを受け入れます。

同じメッセージを 1 つずつ送信する必要がある電話番号のリストがあります。list をループすると、電話番号を url に追加しResponse.Redirect(url)、各反復で行います。

ただし、これは最初に発生したときにリストの最初の電話番号に SMS を送信するだけでありResponse.Redirect()、指定された Url で指定された外部サイトにブラウザーが移動し、残りの for ループは実行されません。つまり、残りの電話番号は URL に埋め込まれません。

string[] phNos = { "91999999998", "91999999996" ,"91999999995"}; // Sample Mobile nos.

for(int i=0;i<phNos.Length;i++)
{

url = "baseurl/PushURL.fcgi?0&mobileno=" + phNos[i] + "&message="+ masg;

Response.Redirect(url);

}

について読みましServer.Transfer()たが、これは外部サイトへの送信には使用できません。私の要件は実現可能ですか?実装方法を教えてください。

4

3 に答える 3

5

Response.Redirect は、ユーザーのブラウザーを特定の URL にリダイレクトします。

やりたいことは、サーバー間通信を使用して、サーバーが必要な URL にアクセスできるようにすることです。WebClient を使用すると、これを簡単に行うことができます。

var cli = new System.Net.WebClient();
for(int i=0;i<phNos.Length;i++)
{
    url = "baseurl/PushURL.fcgi?0&mobileno=" + phNos[i] + "&message="+ masg;
    cli.DownloadString(url);
}

これにより、URL が取得され、効果的に API が順次かつ同期的に呼び出されますが、これは望ましくない場合があります。並行して実行したい場合はDownloadStringAsync、WebClient で使用できますが、すべての要求が完了するまで待機できるメカニズムをコーディングする必要があります。これは、必要なもの、存在する可能性のある数、およびパフォーマンスの制約によって異なります。

于 2012-10-06T08:57:28.497 に答える
2

HttpWebRequest または WebClient の使用をお勧めします

例えば

for(int i=0;i<phNos.Length;i++)
{
  try
  {
    url = "baseurl/PushURL.fcgi?0&mobileno=" + phNos[i] + "&message="+ masg;

    Uri targetUri = new Uri(url);
    System.Net.HttpWebRequest hwb;
    hwb = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(targetUri);
    hwb.GetResponse();
  }
  catch (...)
  { // error handling
  }
}
于 2012-10-06T09:03:23.500 に答える
1

この種のプロセスは Web サービス / WCF (アプリケーション サーバー上) によって実行される必要があるため、上記のように Web クライアントを使用しますが、asp.net ページは WCF サービスを呼び出して必要なアクションを実行する必要があります。

Web ページは、可能ではありますが、実際にはこの種のことには向いていません。

于 2012-10-06T09:25:30.807 に答える