相关疑难解决方法(0)

如何在Android(9)Pie中允许所有网络连接类型HTTP和HTTPS?

从Android 9 Pie开始,没有加密的请求永远不会起作用.默认情况下,系统会指望您默认使用TLS.您可以在此处阅读此功能因此,如果您只通过HTTPS发出请求,那么您就是安全的.但是那些通过不同网站提出请求的应用程序呢,例如类似浏览器的应用程序.

如何在Android 9 Pie中启用对HTTP和HTTPS的所有类型连接的请求?

java android kotlin android-network-security-config android-9.0-pie

100
推荐指数
6
解决办法
5万
查看次数

如何从Genymotion android模拟器访问localhost?

我无法弄清楚如何从Genymotion android模拟器访问localhost.顺便说一句,我使用MAMP.

android mamp emulation genymotion

69
推荐指数
6
解决办法
7万
查看次数

SSLHandshakeException:Android N/7.0上的握手失败

我工作的一个应用程序为其(功率)的用户必须建立自己的服务器(即Nginx的)运行的后台程序.需要在应用程序中配置相应的域才能连接.我一直在测试我自己的手机(索尼z3c)并开始开发5.1.后来我收到了6.0的更新,但仍在模拟器中维护了一个工作5.1.不久前,我开始研究带有7.0图像的AVD,我很惊讶它不会连接到我的服务器,告诉我ssl握手失败了.我的nginx配置非常严格,但它适用于5.1和6.0,所以......?!

这就是我所知道的:

  • 我使用v24作为支持库,即我的compileSdkVersion是24.
  • 我使用Volley v1.0.0.
  • 我已经尝试过TLSSocketFactory,但它没有改变任何东西.这似乎大部分时间都用于阻止SSL3用于较旧的SDK版本.
  • 我已经尝试增加超时,但它没有改变任何东西.
  • 我已经尝试过直接使用HttpURLConnection,但它不会改变堆栈跟踪之外的任何东西(它没有凌空引用,但是完全不同).

如果没有TLSSocketFactory,则通过裸实请求队列进行请求,实例化为Volley.newRequestQueue(context).

这是我在android studio中看到的:

W/System.err: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: Connection closed by peer
W/System.err:     at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:151)
W/System.err:     at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
W/System.err: Caused by: javax.net.ssl.SSLHandshakeException: Connection closed by peer
W/System.err:     at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)
W/System.err:     at com.android.okhttp.Connection.connectTls(Connection.java:235)
W/System.err:     at com.android.okhttp.Connection.connectSocket(Connection.java:199)
W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:172)
W/System.err:     at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
W/System.err:     at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:257)
W/System.err:     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
W/System.err: …
Run Code Online (Sandbox Code Playgroud)

ssl android elliptic-curve sslhandshakeexception android-7.0-nougat

55
推荐指数
5
解决办法
4万
查看次数

为什么我们使用10.0.2.2连接到本地Web服务器而不是在Android客户端使用计算机IP地址

我们通常在url中使用10.0.2.2 :(端口号)连接到本地Web服务器,但是我们应该使用计算机的ip地址而不是10.0.2.2

那为什么我们使用10.0.2.2?

android client-server

43
推荐指数
4
解决办法
6万
查看次数

Android模拟器wifi连接没有互联网

我浪费了一整天的时间尝试在SO和其他提到的地方漂浮的不同解决方案,以便在Android模拟器上启用wifi,但无济于事.任何人都可以帮我弄清楚如何在我的Android模拟器上启用互联网?

我有Nexus 5X API 27,目标是Android 8.1(Google Play)和Nexus 5 API P,目标是Android 7.1.1.

我相信应该有一种方法来启用互联网,否则在模拟器上提供虚拟wifi的重点似乎是浪费.

我在mac OS HS 10.13.4上直接连接到没有代理的路由器.

我甚至尝试删除所有avds,重新安装它们.我甚至尝试使用Oreo Android 8.1安装最新的Pixel 2

似乎没有什么工作.有人遇到过这个问题并找到了解决方案吗?

任何帮助都会有很大的帮助

谢谢,维克拉姆

更新:当我通过手机将我的电脑连接为热点wifi时,模拟器通过wifi连接互联网,但是当我将计算机连接到家用路由器时它失败了.

android android-emulator android-wifi android-studio

42
推荐指数
18
解决办法
3万
查看次数

通过Fetch反应本机发布请求会导致网络请求失败

我遇到了以下错误.目前我正在使用React Native开发Android应用程序,因此我计划使用fetch为我做一个post请求.

fetch("https://XXreachable-domainXX.de/api/test", {
            method: "post",

            body: JSON.stringify({
                param: 'param',
                param1: 'param',

            })
        }
    )
        .then((response) = > response.json()
    )
    .
    then((responseData) = > {
        ToastAndroid.show(
        "Response Body -> " + JSON.stringify(responseData.message), ToastAndroid.SHORT
    )
})
    .
    catch((error) = > {
        console.warn(error);
})
    ;
Run Code Online (Sandbox Code Playgroud)

该应用程序现在抛出一个错误:

TypeError:网络请求失败

当我将代码更改为GET-Request它工作正常时,在浏览器中使用window.alert()作为返回它很酷,并且chrome扩展Postman正确地返回数据.

javascript android fetch react-native

29
推荐指数
4
解决办法
4万
查看次数

axios 出现网络错误并响应本机

我使用外部托管的 Django python 框架创建了一个 API 端点。我可以从浏览器 ( mydomain.com/endpoint/)访问我的端点并验证没有错误。当我在我的开发机器 ( localhost:8000/endpoint/)上本地运行我的测试 django 服务器时,情况也是如此。当我使用我的本地主机作为端点时,我的 json 数据毫无问题地通过。当我使用我的生产域时,axios 遇到了网络错误,并且它提供的上下文并不多......从调试控制台我得到了这个:

Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:87)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:554)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:387)
    at XMLHttpRequest.js:493
    at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
    at MessageQueue.__callFunction (MessageQueue.js:353)
    at MessageQueue.js:118
    at MessageQueue.__guardSafe (MessageQueue.js:316)
Run Code Online (Sandbox Code Playgroud)

这是我在 React Native 组件中的 axios 调用:

    componentDidMount() {
        axios.get('mydomain.com/get/').then(response => {  // localhost:8000/get works
            this.setState({foo:response.data});
        }).catch(error => {
            console.log(error);
        });
    }
Run Code Online (Sandbox Code Playgroud)

react-native axios

12
推荐指数
4
解决办法
6万
查看次数

如何处理网络请求失败错误?

我的问题与React Native fetch() Network Request Failed 不同,我并没有在 http 或 https 上挣扎,如果请求由于互联网连接、错误的 API 等而失败,我只想向用户提供一个很好的错误。得到反应本机错误。

我有一个表格,想把它发送到服务器并得到回复,所以我写了这个:

submitForm = async () => {
  fetch("www.somewhere.com", {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(some_data)
  })
  .then((response) => response.json())
  .then((responseJson) => {
     // do something
  })
  .catch((error) => {
      this.setState({server_error: "request failed try again."});
  });
};
Run Code Online (Sandbox Code Playgroud)

但似乎我的捕获无法正常工作,因为如果请求失败,我会从 react native 收到如下错误: 在此处输入图片说明 而在生产中,它只是跳出应用程序,我该如何避免这种情况?

javascript fetch reactjs react-native

8
推荐指数
1
解决办法
1万
查看次数

在响应本机中处理网络请求失败

使用React Native Fetch API时遇到问题。很多次请求失败。我有高速连接。但是很多次失败了。该问题正在android和ios中同时发生。

const shoppingApi  = 'myserverlink';

async function Sendshoppinapi(data) {
    try {
        let response = await fetch(shoppingApi, {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'content-type':'multipart/form-data'
            },
            body: data
        });
        let responseJson = await response.json();
        return responseJson;
    }
    catch (error) {
          Alert.alert(error.toString())
    }
}

export {Sendshoppinapi};
Run Code Online (Sandbox Code Playgroud)

我发送服务器作为后期请求的数据

  add_to_wishlist = (item,index) => {
        {
          let data = new FormData();
        data.append('methodName',       'add_to_wishlist');
        data.append('user_id',        global.userid)
        data.append('item_id',        this.props.navigation.state.params.itemid.toString())


        Sendshoppinapi(data).then((responseJson)=>{

          console.warn(responseJson);
          if(responseJson.responseCode == '200'){
            this.setState({fav:false})
            Alert.alert('SHOPPING','Item added to wishlist successfully.',[{text: 'OK',},],{ cancelable: false }) …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-android react-native-ios

6
推荐指数
1
解决办法
8125
查看次数

使用存储类通过aws放大反映本机映像

我有一张图片.我想使用aws-amplify将其上传到S3.所有Storage类上传示例都使用文本文档; 但是,我想上传一张图片.我正在使用expo,它没有来自react-native-fetch-blob的支持,并且本机反应没有blob支持......

所以我的选择似乎是:

  1. 通过lambda创建节点服务.
  2. 仅将base64信息上传到S3而不是blob.

const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL); if (status === 'granted') { const image = await ImagePicker.launchImageLibraryAsync({ quality: 0.5, base64: true }); const { base64 } = image; Storage.put(`${username}-profileImage.jpeg`, base64); }

它是否正确?

javascript blob amazon-web-services react-native aws-amplify

5
推荐指数
1
解决办法
2711
查看次数

反应本机 axios 请求在 IOS 模拟器中不起作用

我正在尝试使用axios从 API 获取数据。

这是我发出 get 请求的代码:

export const loadBloodGroups = () => {
    return (dispatch) => {

        dispatch({ type: LOADING_BLOOD });

        const url = `http://www.example.org/api/bloodgroup/getusersbloodgroup`;
        axios.get(url)
        .then(response => loadingSuccess(dispatch, response))
        .catch(error => loadingFail(dispatch, error));
    };
};

const loadingFail = (dispatch, error) => {
    console.log(error);
    dispatch({ 
        type: LOADING_BLOOD_FAIL,
        payload: error
    });
};

const loadingSuccess = (dispatch, response) => {
    dispatch({
        type: LOADING_BLOOD_SUCCESS, 
        payload: response
    });
}; 
Run Code Online (Sandbox Code Playgroud)

http 的 info.plist 设置:

在此输入图像描述

在android模拟器上可以正常使用,但在IOS模拟器上就不行。

在我的浏览器调试控制台中它显示:

在此输入图像描述

Mac 终端显示:

在此输入图像描述

谁能告诉我,我哪里出错了?或者我需要为IOS做任何其他配置吗?

我的平台:

  • 操作系统:Mac 10.13
  • 节点:10.7
  • npm:6.3.0 …

ios ios-simulator react-native axios

5
推荐指数
1
解决办法
5862
查看次数