82 lines
2.8 KiB
Java
82 lines
2.8 KiB
Java
|
package okhttp3.repackaged.internal.http;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import java.net.ProtocolException;
|
||
|
import okhttp3.repackaged.Protocol;
|
||
|
import okhttp3.repackaged.Response;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public final class StatusLine {
|
||
|
public static final int HTTP_CONTINUE = 100;
|
||
|
public static final int HTTP_PERM_REDIRECT = 308;
|
||
|
public static final int HTTP_TEMP_REDIRECT = 307;
|
||
|
public final int code;
|
||
|
public final String message;
|
||
|
public final Protocol protocol;
|
||
|
|
||
|
public StatusLine(Protocol protocol, int i, String str) {
|
||
|
this.protocol = protocol;
|
||
|
this.code = i;
|
||
|
this.message = str;
|
||
|
}
|
||
|
|
||
|
public static StatusLine get(Response response) {
|
||
|
return new StatusLine(response.protocol(), response.code(), response.message());
|
||
|
}
|
||
|
|
||
|
public static StatusLine parse(String str) throws IOException {
|
||
|
Protocol protocol;
|
||
|
int i;
|
||
|
String str2;
|
||
|
if (str.startsWith("HTTP/1.")) {
|
||
|
i = 9;
|
||
|
if (str.length() < 9 || str.charAt(8) != ' ') {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
int charAt = str.charAt(7) - '0';
|
||
|
if (charAt == 0) {
|
||
|
protocol = Protocol.HTTP_1_0;
|
||
|
} else if (charAt == 1) {
|
||
|
protocol = Protocol.HTTP_1_1;
|
||
|
} else {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
} else if (str.startsWith("ICY ")) {
|
||
|
protocol = Protocol.HTTP_1_0;
|
||
|
i = 4;
|
||
|
} else {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
int i2 = i + 3;
|
||
|
if (str.length() < i2) {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
try {
|
||
|
int parseInt = Integer.parseInt(str.substring(i, i2));
|
||
|
if (str.length() <= i2) {
|
||
|
str2 = "";
|
||
|
} else {
|
||
|
if (str.charAt(i2) != ' ') {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
str2 = str.substring(i + 4);
|
||
|
}
|
||
|
return new StatusLine(protocol, parseInt, str2);
|
||
|
} catch (NumberFormatException unused) {
|
||
|
throw new ProtocolException("Unexpected status line: ".concat(String.valueOf(str)));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public final String toString() {
|
||
|
StringBuilder sb = new StringBuilder();
|
||
|
sb.append(this.protocol == Protocol.HTTP_1_0 ? "HTTP/1.0" : "HTTP/1.1");
|
||
|
sb.append(' ');
|
||
|
sb.append(this.code);
|
||
|
if (this.message != null) {
|
||
|
sb.append(' ');
|
||
|
sb.append(this.message);
|
||
|
}
|
||
|
return sb.toString();
|
||
|
}
|
||
|
}
|