Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当iOS工作时,所有请求都会失败 在调试Android时,所有网络请求都会突然失败,但在iOS中,它可以正常工作。_Javascript_Android_React Native_Connection_React Native Android - Fatal编程技术网

Javascript 当iOS工作时,所有请求都会失败 在调试Android时,所有网络请求都会突然失败,但在iOS中,它可以正常工作。

Javascript 当iOS工作时,所有请求都会失败 在调试Android时,所有网络请求都会突然失败,但在iOS中,它可以正常工作。,javascript,android,react-native,connection,react-native-android,Javascript,Android,React Native,Connection,React Native Android,curl--data”电子邮件=test@gmail.com" https://unblnd.com/api/login正常工作并提供预期结果。使用http,请求返回永久移动,但由于本地连接也不起作用,这不应该是问题所在吗 它在本地主机和远程API URL中的android物理设备和android模拟器上都失败 $react native info 配置文件 我们制作了这个fetchApi函数,它负责get和post方法 尝试了什么 android:usesCleartextTraffic=“

curl--data”电子邮件=test@gmail.com" https://unblnd.com/api/login
正常工作并提供预期结果。使用http,请求返回永久移动,但由于本地连接也不起作用,这不应该是问题所在吗

它在本地主机和远程API URL中的android物理设备和android模拟器上都失败

$react native info

配置文件

我们制作了这个fetchApi函数,它负责get和post方法

尝试了什么

  • android:usesCleartextTraffic=“true”
    已添加到AndroidManifest.xml
  • 已添加文件res/xml/network\u security\u config.xml
  • 使用工具:
AndroidManifest.xml



这个问题也有类似的主题,但将黑客添加到AndroidManifest中似乎没有帮助。

嗨,我面临着同样的问题。您找到解决方案了吗?我们没有一个清晰的解决方案,但它帮助删除了
FormData
,只使用了
JSON.stringify(body)
。在标题中始终使用
'Content-Type':'application/json'
也有帮助。这在生产环境中有帮助,但在本地主机中没有。这些建议对你有帮助吗?嗨,我也面临同样的问题。您找到解决方案了吗?我们没有一个清晰的解决方案,但它帮助删除了
FormData
,只使用了
JSON.stringify(body)
。在标题中始终使用
'Content-Type':'application/json'
也有帮助。这在生产环境中有帮助,但在本地主机中没有。这些建议对你有帮助吗?
info Fetching system and libraries information...
  ...
  npmPackages:
    react: 16.9.0 => 16.9.0 
    react-native: 0.61.5 => 0.61.5 
  npmGlobalPackages:
    react-native-cli: 2.0.1
    react-native-git-upgrade: 0.2.7
if (__DEV__) {
  config = {
    clientId: '***',
    url: 'http://192.168.0.***:8000/api',
  };
} else {
  config = {
    clientId: '***',
    url: 'http://unblnd.com/api',
  };
}
import apiConfig from './config';
import * as authSelectors from 'app/services/auth/selectors';

export const fetchApi = async (endPoint, method = 'get', body = {}) => {
  console.log(`start fetchApi ${method} ${endPoint}`);
  const accessToken = authSelectors.get().tokens.access.value;
  const accessType = authSelectors.get().tokens.access.type;
  let headers = {
    ...(accessToken
      ? {
          Authorization: `${accessType} ${accessToken}`,
          Accept: 'application/json',
        }
      : {
          'Content-Type': 'application/json',
        }),
  };
  let response;
  if (method == 'get' || Object.keys(body) == 0) {
    response = await fetch(`${apiConfig.url}${endPoint}`, {
      method: method,
      headers: headers,
    });
  } else {
    var formData = new FormData();
    Object.keys(body).forEach(type => {
      if (typeof body[type] === 'object') {
        body[type] = JSON.stringify(body[type]);
      }
      formData.append(type, body[type]);
    });
    console.log('sending data: ' + JSON.stringify(formData));
    response = await fetch(`${apiConfig.url}${endPoint}`, {
      method: method,
      headers: headers,
      body: formData,
    });
  }
  console.log('fetch response: ' + JSON.stringify(response));
  let responseJsonData = await response.json();
  console.log('fetch response json: ' + JSON.stringify(responseJsonData));
  return responseJsonData;
};
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
  package="com.unblnd">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
      android:networkSecurityConfig="@xml/network_security_config"
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme"
      android:usesCleartextTraffic="true"
      tools:targetApi="23">
        <uses-library
            android:name="org.apache.http.legacy"
            android:required="false" />
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    </application>

</manifest>