API를 요청하려면 Retrofit 2를 사용하는 앱을 개발하고 있습니다. 이 API는 ASP.NET에 그리고 아래의 코드처럼, Base64로에 Gzip으로 인코딩으로 압축하는됩니다 : 내가 내 안드로이드 응용 프로그램에서해야 할 것은, 개조의 응답을 얻을에서 디코딩하고, 지금응답 본문 수정 2.2 요격기
private static string Compress(string conteudo)
{
Encoding encoding = Encoding.UTF8;
byte[] raw = encoding.GetBytes(conteudo);
using (var memory = new MemoryStream())
{
using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))
{
gzip.Write(raw, 0, raw.Length);
}
return Convert.ToBase64String(memory.ToArray());
}
}
private static string Decompress(string conteudo)
{
Encoding encoding = Encoding.UTF8;
var gzip = Convert.FromBase64String(conteudo);
using (GZipStream stream = new GZipStream(new MemoryStream(gzip), CompressionMode.Decompress))
{
int size = gzip.Length;
byte[] buffer = new byte[size];
using (MemoryStream memory = new MemoryStream())
{
int count = 0;
do
{
count = stream.Read(buffer, 0, size);
if (count > 0)
{
memory.Write(buffer, 0, count);
}
}
while (count > 0);
return encoding.GetString(memory.ToArray());
}
}
}
Base64로 풀고 압축을 풉니 다. 나는 Interceptor
을 사용하여 그것을 시도했지만 성공하지 못했습니다.
이것은 서비스 H4sIAAAAAAAEACspKk0FAI1M/P0EAAAA
에서받은 응답이며, 응답을 디코딩하고 압축을 해제하면 true
이됩니다.
누구나 어떻게 해야할지 알고 있습니까?
다시 한번 당신이 저에게 많은 도움 정말 감사합니다 : D – jackcar
@jackcar을 다시 한번, 정말? 하, 천만에! :) –