

Visual Studio 2013、C#でAPIを開発しています。

APIの目的は携帯にメッセージを送ることで、最初はTimeOutエラーでしたが

[code]

    req.Timeout = System.Threading.Timeout.Infinite;
    
[/code]

上記の記述を追加したら `Unable to connect to the remote server` というエラーが出ました。  
一体このエラーは何が原因で、どうすれば解決できますでしょうか？

[code]

    public string SendSMS(string _message, string _phone_number)
    {
        var enc = System.Text.Encoding.GetEncoding("EUC-JP");
        var postData = "";
    
        try
        {
            //POST送信する文字列を作成
            postData = postData + String.Format("username={0}&", HttpUtility.UrlEncode(_username));
            postData = postData + String.Format("password={0}&", HttpUtility.UrlEncode(_password));
            postData = postData + String.Format("trigger_id={0}&", HttpUtility.UrlEncode(_trigger_id1));
            postData = postData + String.Format("phone_number={0}&", HttpUtility.UrlEncode(_PhoneNumber));
            postData = postData + String.Format("message={0}&", HttpUtility.UrlEncode(_message));
    
            //バイト型配列に交換
            var postDataBytes = System.Text.Encoding.ASCII.GetBytes(postData);
            //WebRequestの作成
            System.Net.WebRequest req = System.Net.WebRequest.Create(_SMSURL);
    
            req.Timeout = System.Threading.Timeout.Infinite;
    
            //メソッドにPOSTを指定
            req.Method = "POST";
            //ContentTypeを"application/x-www-form-urlencoded"にする
            req.ContentType = "application/x-www-form-urlencoded";
            //POST送信するデータの長さを指定
            req.ContentLength = postDataBytes.Length;
            //データをPOST送信するためのStreamを取得
            System.IO.Stream reqStream = req.GetRequestStream();
    
            //送信するデータを書き込む
            reqStream.Write(postDataBytes, 0, postDataBytes.Length);
    
            reqStream.Close();
    
            //サーバーからの応答を受信するためのWebResponseを取得
            var res = req.GetResponse();
            //応答データを受信するためのStreamを取得
            var resStream = res.GetResponseStream();
            //XML形式へ
            var objXMLReader = new XmlTextReader(resStream);
    
            var xmldoc = new XmlDocument();
            xmldoc.Load(objXMLReader);
            objXMLReader.Close();
        }
        catch(Exception e)
        {
            return " Send SMS Error " + e.Message + " log:" + _log;
        }
    }
    
[/code]


CC BY-SA 4.0
2015-07-28T09:50:22.883
12771
2020-02-21T01:16:00.637
2020-02-21T01:16:00.637
3060
10710
question
c# visual-studio network
Unable to connect to the remote server


相手サーバーに拒否されているか、  
自分の端末から出られていないかだと思います。

ファイアウォールの設定で、この通信が許可されているか(拒否されていないか)  
確認してみてはいかがでしょうか。


CC BY-SA 3.0
2015-07-28T10:49:51.900
12773
2015-07-28T10:49:51.900
6040
12771
answer


SSL/TLS のバージョンの問題であるかもしれません。

[code]

    ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
    
[/code]

を追加して試してみてください。


CC BY-SA 3.0
2016-10-13T17:48:28.893
29537
2016-10-13T17:48:28.893
14400
12771
answer