1

PHP サーバーを呼び出す .Net 3.5 アセンブリを作成します。戻り値は JSON オブジェクトです。JSON オブジェクトには、Base64 でエンコードされた WAV ファイルがあります (以下を参照)。Newtonsoft.Json を使用して、「値」から変換された WAV を取得しようとしています。8時間かけて…

ここに私が試したコードがあります

int count = 0;
byte[] buf = new byte[8192];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resStream = response.GetResponseStream();
count = resStream.Read(buf, 0, buf.Length);
string json = Encoding.ASCII.GetString(buf, 0, count);

JObject jo = JObject.Parse(json);
//JObject jo = (JObject)JsonConvert.DeserializeObject(json);

これは私が立ち往生するところです。エラーの読み取り:

"文字列が終了していません。区切り文字が必要です: \". パス 'result.value'、行 1、位置 3449."

紐が長すぎるような…

微調整が必​​要なインターネットから入手したBase64変換コードにさえ到達していません

char[] base64CharArray;
inFile = new System.IO.StreamReader(inputFileName,System.Text.Encoding.ASCII);
base64CharArray = new char[inFile.BaseStream.Length];
inFile.Read(base64CharArray, 0, (int)inFile.BaseStream.Length);
base64String = new string(base64CharArray);

解決策は、月曜日に最初にライブを開始することです...

4

1 に答える 1

2

これはうまくいくはずです。ただし、おそらく最も効率的なソリューションではありません。ただし、ストリームは を実装しているため、ストリームを閉じることを忘れないでくださいIDisposable
私はWebClientここで使用していますが、実際には違いはありません。HttpWebRequestこの場合、それは冗長だと思います。

            WebClient client = new WebClient();
            Stream stream = client.OpenRead("http://waps.repli-con.com/services/ivrservices/getUserNameRecording/10000");
            StreamReader reader = new StreamReader(stream);

            JToken token = JObject.Parse(reader.ReadToEnd().ToString());

            string base64string = token.SelectToken("result").SelectToken("value").ToString();
            Byte[] b = Convert.FromBase64String(base64string);
            System.IO.File.WriteAllBytes(@"C:\Users\user\Desktop\test.wav", b);   
            stream.Close();
于 2013-03-24T00:58:45.910 に答える