0
這是壓縮的串的功能被髮送到PHP代碼減壓串的從C#發送到PHP
public string Zip(string value)
{
//Transform string into byte[]
byte[] byteArray = Encoding.UTF8.GetBytes(value);
int indexBA = 0;
foreach (char item in value.ToCharArray())
{
byteArray[indexBA++] = (byte)item;
}
//Prepare for compress
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.Compression.GZipStream sw = new System.IO.Compression.GZipStream(ms,
System.IO.Compression.CompressionMode.Compress);
//Compress
sw.Write(byteArray, 0, byteArray.Length);
//Close, DO NOT FLUSH cause bytes will go missing...
sw.Close();
//Transform byte[] zip data to string
byteArray = ms.ToArray();
System.Text.StringBuilder sB = new System.Text.StringBuilder(byteArray.Length);
foreach (byte item in byteArray)
{
sB.Append((char)item);
}
ms.Close();
sw.Dispose();
ms.Dispose();
return sB.ToString();
}
和正在發送用
string data = req.Zip(xml);
string resp = req.post(url,"&Data="+data);
我試圖使用請求gzuncompress,gzdecode但所有產生數據錯誤任何機構知道爲什麼?
感謝john,但它不是我的代碼,我會解壓縮PHP中的結果。 你是否打算使用: string base64 =轉換。ToBase64String(byteArray);而不是將char數組轉換爲字符串? –
@ user874557:那就沒有希望了。您提交的C#代碼非常可能會丟失數據。它**必須**被改變。 –
在C#中不是很好,所以你可以告訴我如何壓縮字符串數據,也可以通過gzuncompress或gzdecode在PHP中解壓它,因爲我已經嘗試了所有這些功能,似乎丟失了數據 –