2017-07-12 5 views
0

CURL POSTを実行して、Plivo APIサービス経由でSMSメッセージを送信したいとします。CURL "-i --user"をC#HttpWebRequestに変換します。

私はC#でHttpWebRequestを使用しています(下記参照)。以下のように

Parametres: POSTurl = "https://api.plivo.com/v1/Account/MA **************** M2 /メッセージ/ '」 JSONRequest ==「SRC = + 972545675453 & DST = 0545675453 & -i --userのAUTH_ID:私は、ユーザーに次のパラメータ必要そのドキュメント内のテキスト= TEST」

AUTH_TOKEN

を私はこれを実装する方法を知りませんが、それは(401エラーが動作しない-unauthorised )
代わりに私のコードでauthパラメータを使用しようとしました: auth == "MA *************** MM2:Yj ************************* * M5ZjA4"

いくつかのアドバイスが必要

おかげ

は、これは私のコードです:

ユーザーを送信するために必要な
public static SqlString POSTSG(String POSTurl, String auth, SqlString JSONRequest) 
{ 
    SqlPipe pipe = SqlContext.Pipe; 



    //Create Request 
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(POSTurl); 
    myHttpWebRequest.Method = "POST"; 


    myHttpWebRequest.Headers.Add("Authorization", auth); 
    myHttpWebRequest.ContentType = "application/json; charset=utf-8"; 
    StreamWriter streamWriter = new StreamWriter(myHttpWebRequest.GetRequestStream(), System.Text.Encoding.UTF8); 
    streamWriter.Write(JSONRequest); 
    streamWriter.Flush(); 
    streamWriter.Close(); 

    // Get the response 
    HttpWebResponse httpResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

    // Create a new read stream for the response body and read it 
    StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()); 
    SqlString result = streamReader.ReadToEnd(); 


    return (result); 





} 
+1

最良の方法は、アプリケーションなしでメッセージを送信し、wiresharkやfiddlerのようなスニファを使用してメッセージをトレースすることです。あなたは多くを学ぶでしょう。次に、アプリケーションなしで同じコードを送信するようにコードを変更します。 – jdweng

答えて

0

:代わりに、認証のネットワーク資格情報として渡します。コンテンツタイプとして 'application/json'を使用します。

[Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)] 
public static SqlString POST(String POSTurl, String auth,String user, String pass, String ContentType, SqlString JSONRequest) 
{ 
    SqlPipe pipe = SqlContext.Pipe; 



    //Create Request 
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(POSTurl); 
    myHttpWebRequest.Method = "POST"; 
    if (user != null) { myHttpWebRequest.Credentials = new NetworkCredential(user, pass); } 
    else if (auth!=null) { myHttpWebRequest.Headers.Add("Authorization", auth); } 
    myHttpWebRequest.ContentType = ContentType; 
    StreamWriter streamWriter = new StreamWriter(myHttpWebRequest.GetRequestStream()); 
    streamWriter.Write(JSONRequest); 
    streamWriter.Flush(); 
    streamWriter.Close(); 

    // Get the response 
    HttpWebResponse httpResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

    // Create a new read stream for the response body and read it 
    StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.UTF8); 
    SqlString result = streamReader.ReadToEnd(); 



    return (result); 

} 
関連する問題