小さなマイクロチャネル・プログラム・コード(2次元コード)を取得するには、.NETのHttpClientについての方法

マイクロ燃える手紙アプレットのアプリケーションでは、市場の需要に関連するアプレットの開発もよりアップしています。小さなマイクロチャネル生成の最近の分析では、プログラム・コード関連のニーズを生成 - (パラメータで)特定のページの小さなプログラムにジャンプするスキャンコードを必要とし、公式文書をアプレットだけでなく、オンラインの例では表示されませんどのくらいの価値が見C#のコードを生成するために、小さなアプレット・プログラム・インターフェースを呼び出すための使用例なので、コードは数年前に拾った、わずか分析が必要で、この人で共有しようとするので、議論を開始します。

例えば、テキストのHttpClientを方法は、もちろん、また、HttpWebRequestの古い採用され、ここで分析されることはありません。
アプレットコード生成マイクロチャネル(二次元コード)は、3つのインターフェースがあります。

この点でのみcreatewxaqrcode(二次元コード)、及び(小プロシージャコード/ヒマワリヤード)を得る説明、同じ原理をgetUnlimited。

以下のように2つの間のインタフェースのアドレスは以下のとおりです。

https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN

https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN

バイナリ画像ストリームを返す要求小さなプログラムインターフェイスが使用しているので確認したバイナリデータのHttpClientの実施形態のために処理し、はるかに直接簡単にキーコードを、次の例に、と言って:

 

パブリッククラスHttpClientHelper 
    { 
パブリック静的ブールDownloadBufferImage(文字列requestUri、/ * HttpContent httpContent、* /文字列filePathに、文字列jsonString、文字列webapiBaseUrl = "")
        { 
            しようと
            { 
                HttpContent httpContent =新しいStringContent(jsonString)。
                httpContent.Headers.ContentType =新MediaTypeHeaderValue( "アプリケーション/ JSON"); 
               
                使用して(HttpClientをHttpClientを=新しいHttpClientを())
                {                    
                    場合(string.IsNullOrWhiteSpace(webapiBaseUrl)!)
                    { 
                        httpClient.BaseAddress =新しいウリ(webapiBaseUrl)。
                    } 
                               fs.Close()。 
                    BOOL結果= FALSE;
                    httpClient.PostAsync(requestUri、httpContent).ContinueWith(
                       (requestTask)=> 
                       { 
                           HttpResponseMessage応答= requestTask.Result; 

                           response.EnsureSuccessStatusCode(); 

                           VARデータ= response.Content.ReadAsByteArrayAsync()は、結果; 
                        
                           使用(のFileStream FS =新規のFileStream (filePathに、FileMode.Create、FileAccess.Write))
                           { 
                               fs.Write(データ、0、data.Length); 
                               fs.Flush(); 
                           } 

                           結果= TRUE。

                       。}))(30000待ち。
                 
                    結果を返します。
                } 
            } 
            キャッチ
            { 
                falseを返します。
            } 
        } 
}

  

四つのパラメータの合計:

  1. インタフェースのURL requestUri要求。
  2. 記憶された絶対パスファイルパスアプレットコード(二次元コード)。
  3. JSON jsonStringは、データオブジェクトを提出しました。
  4. webapiBaseUrlルートインタフェース(無視できます)

 

テンセントのインタフェース要件ので、データのJSONオブジェクトを提出しなければならない、httpContent.Headers.ContentType =新MediaTypeHeaderValue(「アプリケーション/ JSON」)、 提出方法としてフォーム辞書にフォームを送信しないよう、ここでは特に重要;第二に、バイナリデータストリーム処理および画像を保存する形式をとる。ここでは繰り返しません。

VARデータ= response.Content.ReadAsByteArrayAsync()の結果。
                        
                           使用(のFileStream FS =新規のFileStream(filePathに、FileMode.Create、FileAccess.Write))
                           { 
                               fs.Write(データ、0、data.Length)。
                               fs.Flush(); 
                               fs.Close(); 
                           }

  

簡単なパッケージと、次の例を呼び出します。

パブリックブールGetQrCode(文字列filePathに、文字列のパス= "ページ/デフォルト/デフォルト"、int型の幅= 430)
         { 
             文字列postUrl = String.Formatの( "https://api.weixin.qq.com/wxa/getwxacode?access_token= {0}」、AccessToken)。         

             VARデータ=新しい
            { 
                パス=パス、
                幅=幅
            }。
             VaRの結果= HttpClientHelper.DownloadBufferImage(postUrlファイルパス、Newtonsoft.Json.JsonConvert.SerializeObject(データ))。

             結果を返します。
         }

  

新しいNameSpace.GetQrCode(@ "D:\ QrCode.jpg"、パス: "ページ/インデックス/インデックス");

 

そのようなServer.MapPathの(関数savepath)としてアプレットコード(二次元コード)の絶対パスの画像の保存のためfilePathに、パス(アプレットページアドレス)と幅(二次元コードの幅、デフォルト430)はオプションのパラメータであり、特定の参照インタフェース資料; バウチャーためAccessTokenインタフェースの呼び出し;

注:インターフェースの呼び出しが成功した場合の制限にテンセントが、それは画像のバイナリコンテンツを指示するために戻りますために、要求が失敗した場合、それはJSON形式でデータを返し、処理のみのためにバイナリストリームを返す方法を、他の自己改善のニーズに応じ。

 

おすすめ

転載: www.cnblogs.com/ang/p/11620940.html