发生一个或多个错误。 (无法解析 TLS 数据包头)C# Xamarin Android Project Visual Studio
Posted
技术标签:
【中文标题】发生一个或多个错误。 (无法解析 TLS 数据包头)C# Xamarin Android Project Visual Studio【英文标题】:One or more errors occurred. (Unable to parse TLS packet header) C# Xamarin Android Project Visual Studio 【发布时间】:2021-11-26 18:30:54 【问题描述】:当我为 API 服务器使用 http url 时,我收到错误:
Message "One or more errors occurred. (Cleartext HTTP traffic to 194.141.118.43 not permitted)"
当我将 https 放在 API 服务器的 url 上时,我收到错误:
Message "One or more errors occurred. (Unable to parse TLS packet header)"
我的RestServiceData
类看起来像:
using System;
using System.Diagnostics;
using System.Net.Http;
using System.Threading.Tasks;
using MaritsaTundzhaForecast.Models;
using Newtonsoft.Json;
namespace MaritsaTundzhaForecast.Services
public class RestServiceData
HttpClient _client1;
HttpClient _client2;
public RestServiceData()
_client1 = new HttpClient();
_client2 = new HttpClient();
public WaterBindingData GetWaterDataForecast(string query, string query2)
WaterDataJson waterData = new WaterDataJson();
WaterStationsJson waterStations = new WaterStationsJson();
WaterBindingData result = new WaterBindingData();
try
var task = Task.Run(() => _client1.GetAsync(query));
task.Wait();
var response = task.Result;
var task2 = Task.Run(() => _client2.GetAsync(query2));
task2.Wait();
var response2 = task2.Result;
if (response.IsSuccessStatusCode && response2.IsSuccessStatusCode)
var content = response.Content.ReadAsStringAsync().Result;
var content2 = response2.Content.ReadAsStringAsync().Result;
var json = content2.Replace("\"ardaforecast\":[[", "\"ardaforecast\":[ \"items\": [")
.Replace("],\"fieldCount\"", "],\"details\":\"fieldCount\"")
.Replace("]", "]");
waterData = JsonConvert.DeserializeObject<WaterDataJson>(content2);
waterStations = JsonConvert.DeserializeObject<WaterStationsJson>(content);
result.WaterData = waterData;
result.WaterStation = waterStations;
catch (Exception ex)
Debug.WriteLine("\t\tERROR 0", ex.Message);
return result;
这是我的Constants
班级:
using System;
using System.IO;
namespace MaritsaTundzhaForecast
public static class Constants
public static string EndPoint = "https://194.141.118.43:3001/";
我可以做些什么来修复这个错误?
【问题讨论】:
您没有有效的 SSL 设置。只需在浏览器中加载您的 url 就会显示 SSL 错误。有许多在线工具可以检查您的 SSL 配置。或者,您可以按照 previous question 中的建议启用UsesCleartextTraffic
【参考方案1】:
如果您的网站没有任何证书配置,请将https
更改为http
。
设置为允许 http 请求。
添加你的 xxx.android->Properties->AndroidManifest.xml:android:usesCleartextTraffic="true"
.
如果上面的方法不行,在你的下创建一个xml文件夹 Resources 文件夹并添加 network_security_config.xml 文件。添加 代码:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
添加你的 xxx.Android->Properties->AndroidManifest.xml:
android:networkSecurityConfig="@xml/network_security_config"
【讨论】:
【参考方案2】:如果你想使用http请求,你应该将android:usesCleartextTraffic="true"
添加到AndroidManifest.xml中的应用程序标签中,该标签仅用于API level 23及更高级别(这足以测试)。
您应该在线使用 https 请求,您需要一个域名,并且 https 将在您的服务器中使用 443 端口。通常,您需要 nginx 或 Apache 来监听 443 并连接您自己的服务器。
【讨论】:
以上是关于发生一个或多个错误。 (无法解析 TLS 数据包头)C# Xamarin Android Project Visual Studio的主要内容,如果未能解决你的问题,请参考以下文章
node-telegram-bot-api 中的错误未找到模块:无法解析 node-telegram-bot-api 中的“fs”、“net”、“tls”