1

ASP.NET C#でビルドされたWebアプリケーションからSMSを送信していますが、何らかの理由でを追加するSourceAddressparameter.Add("SourceAddress", "BPD.co.uk");、作業BPD.co.ukがとして実行されBPDcoukます。

ポイントを表示するにはどうすればよいですか?

これが私のC#コードです:

public void SendSms(string MobileNumber, string SMSContent)
{
    Dictionary<string, string> parameter = new Dictionary<string, string>();

    parameter.Add("Action", "Send");
    parameter.Add("DestinationAddress", MobileNumber);
    parameter.Add("SourceAddress", "BPD.co.uk");
    parameter.Add("Body", SMSContent);
    parameter.Add("ValidityPeriod", "86400");
    string resultcode = api_connect("nsp04456", "pword", parameter);
}

API_Connectの呼び出しは次のとおりです

private string api_connect(string Username, string Password, Dictionary<string, string> ParametersDict)
{
    string url = "http://api.sms.co.uk/api/api.php";
    string poststring = "Username=" + Username + "&";
    poststring = poststring + "Password=" + Password;
    // Turn the parameter dictionary object into the variables
    foreach (KeyValuePair<string, string> item in ParametersDict)
    {
        poststring = poststring + "&" + item.Key + "=" + item.Value;
    }

    MSXML2.ServerXMLHTTP60 xmlHttp = new MSXML2.ServerXMLHTTP60();// Server.CreateObject("MSXML2.ServerXMLHTTP.4.0");
    xmlHttp.open("POST", url, false);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlHttp.send(poststring);

    return xmlHttp.responseText;

}
4

1 に答える 1

0

あなたが使用しているAPIは、パラメーターをサニタイズし、そこにあるべきではないと思われるものを削除していると思います。パラメータの値をエスケープして、BPD\.co\.uk のようにスラッシュを追加してみて、何が起こるかを確認してください。

于 2012-04-17T10:47:00.287 に答える