mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-02-12 17:30:12 +08:00
Implement XHR timeout for Android and IOS natively.
Summary: Opening this in a separate PR but the discussion can be viewed on #4832. Basically, this is a native implementation and is a bit more elegant. The consensus on my previous PR was that it should be done natively rather than in JS. There's now no maximum valid timeout value and a timeout of 0 will never time out. ontimeout isn't implemented (yet) in this PR. cc nicklockwood ide philikon Closes https://github.com/facebook/react-native/pull/5038 Reviewed By: svcscm Differential Revision: D2838743 Pulled By: nicklockwood fb-gh-sync-id: 774f864ac35082bf522f7665f4311bd3affbe82c
This commit is contained in:
committed by
facebook-github-bot-8
parent
a3706411ab
commit
1303e6d039
@@ -15,6 +15,8 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Reader;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.GuardedAsyncTask;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
@@ -113,19 +115,25 @@ public final class NetworkingModule extends ReactContextBaseJavaModule {
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
/**
|
||||
* @param timeout value of 0 results in no timeout
|
||||
*/
|
||||
public void sendRequest(
|
||||
String method,
|
||||
String url,
|
||||
final int requestId,
|
||||
ReadableArray headers,
|
||||
ReadableMap data,
|
||||
final boolean useIncrementalUpdates) {
|
||||
final boolean useIncrementalUpdates,
|
||||
int timeout) {
|
||||
Request.Builder requestBuilder = new Request.Builder().url(url);
|
||||
|
||||
if (requestId != 0) {
|
||||
requestBuilder.tag(requestId);
|
||||
}
|
||||
|
||||
mClient.setConnectTimeout(timeout, TimeUnit.MILLISECONDS);
|
||||
|
||||
Headers requestHeaders = extractHeaders(headers, data);
|
||||
if (requestHeaders == null) {
|
||||
onRequestError(requestId, "Unrecognized headers format");
|
||||
|
||||
Reference in New Issue
Block a user