|
22 | 22 |
|
23 | 23 | package com.onedrive.sdk.http; |
24 | 24 |
|
25 | | -import android.os.Build; |
26 | | - |
27 | 25 | import com.onedrive.sdk.options.HeaderOption; |
28 | 26 |
|
29 | 27 | import java.io.IOException; |
30 | 28 | import java.io.InputStream; |
31 | 29 | import java.io.OutputStream; |
32 | 30 | import java.net.HttpURLConnection; |
| 31 | +import java.net.ProtocolException; |
33 | 32 | import java.util.HashMap; |
34 | | -import java.util.Locale; |
35 | 33 | import java.util.Map; |
36 | 34 |
|
37 | 35 | /** |
@@ -61,16 +59,13 @@ public UrlConnection(final IHttpRequest request) throws IOException { |
61 | 59 | mConnection.addRequestProperty(header.getName(), header.getValue()); |
62 | 60 | } |
63 | 61 |
|
64 | | - if (request.getHttpMethod() == HttpMethod.PATCH |
65 | | - && Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) { |
66 | | - if (request.getRequestUrl().getAuthority().toLowerCase(Locale.ROOT).startsWith("api.onedrive.com")) { |
67 | | - mConnection.setRequestMethod(HttpMethod.POST.toString()); |
68 | | - mConnection.addRequestProperty("X-HTTP-Method-Override", "PATCH"); |
69 | | - } else { |
70 | | - mConnection.setRequestMethod(HttpMethod.PUT.toString()); |
71 | | - } |
72 | | - } else { |
| 62 | + try { |
73 | 63 | mConnection.setRequestMethod(request.getHttpMethod().toString()); |
| 64 | + } catch (final ProtocolException ignored ){ |
| 65 | + // Some HTTP verbs are not supported by older http implementations, use method override as an alternative |
| 66 | + mConnection.setRequestMethod(HttpMethod.POST.toString()); |
| 67 | + mConnection.addRequestProperty("X-HTTP-Method-Override", request.getHttpMethod().toString()); |
| 68 | + mConnection.addRequestProperty("X-HTTP-Method", request.getHttpMethod().toString()); |
74 | 69 | } |
75 | 70 | } |
76 | 71 |
|
|
0 commit comments