WeChatアプレットについて、アプレットコードを取得し、ブザーストリームを画像として保存する方法について
前言
昨日はプログラム機能のためにプログラムコードを取得しました。WeChat文書を見てたくさんの穴に登りました。後ろがふさがらないようにメモをとってください。
操作
WeChatの画像を手に入れたので、どのように処理したらいいか分かりませんでした。今日やっと関連文書を見つけました。解決しました。データの流れがフロントエンドに直接伝わりませんので、サーバーに写真を流用して保存するしかないです。しょうがないですね。
コードを多く言わないでください。
最近WeChatアプリの開発に触れました。emmm。自分で魚を触るのがすごいと思いましたが、やっと穴を這い出しました。とても楽しかったです。ハハハ~これからは開発記録をたくさん書きます。出勤中は自由にサイズをとっています。
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。
昨日はプログラム機能のためにプログラムコードを取得しました。WeChat文書を見てたくさんの穴に登りました。後ろがふさがらないようにメモをとってください。
操作
WeChatの画像を手に入れたので、どのように処理したらいいか分かりませんでした。今日やっと関連文書を見つけました。解決しました。データの流れがフロントエンドに直接伝わりませんので、サーバーに写真を流用して保存するしかないです。しょうがないですね。
コードを多く言わないでください。
public static string Api_Post(string postUrl, string postData, WebHeaderCollection header = null,bool isPic=false)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
byte[] data = encoding.GetBytes(postData);
// ...
try
{
//
request = WebRequest.Create(postUrl) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
if (header != null) request.Headers = header;
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//
response = request.GetResponse() as HttpWebResponse;
// request.GetResponse() Post
instream = response.GetResponseStream();
if (isPic)
{
byte[] tt = StreamToBytes(instream);// byte[]
System.IO.File.WriteAllBytes(HttpContext.Current.Server.MapPath("~/WxCode.jpg"), tt);
WxQRCodeModel model = new WxQRCodeModel();
model.data = "192.168.1.216:80/WxCode.jpg";
model.errcode = 0;
string content = Config.js.Serialize(model);
string err = string.Empty;
return content;
}
else
{
sr = new StreamReader(instream, encoding);
// (html)
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
}
catch (Exception ex)
{
if (isPic)
{
sr = new StreamReader(instream, encoding);
// (html)
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
else
{
string err = ex.Message;
return string.Empty;
}
}
}
instreamなので、WeChatインターフェースから送信されたデータストリームを受け取ると、instreamで処理し、データストリームをbyte[]配列に変換し、FileのWriteAllBytes方法で変換OKのbyte[]配列を画像に変換してサーバに預け、画像経路をmodelに渡す。
/// byte[]
public static byte[] StreamToBytes(Stream stream)
{
List<byte> bytes = new List<byte>();
int temp = stream.ReadByte();
while (temp != -1)
{
bytes.Add((byte)temp);
temp = stream.ReadByte();
}
return bytes.ToArray();
}
締めくくりをつける最近WeChatアプリの開発に触れました。emmm。自分で魚を触るのがすごいと思いましたが、やっと穴を這い出しました。とても楽しかったです。ハハハ~これからは開発記録をたくさん書きます。出勤中は自由にサイズをとっています。
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。