所以我在 IOS 应用程序中使用 React Native,并使用 Fetch API 进行网络连接。我的网址是这样的:
https://example.testing.com/filterString=product.code><CODE01;CODE02
并且它通常在我调用 fetch 方法后自动编码。我的应用程序应该如下所示才能从服务器正确获取响应:
https://example.testing.com/filterString=product.code%3E%3CCODE01%3BCODE02
但是却变成了这样:
https://example.testing.com/filterString=product.code%3E%3CEKWED014T;EKWED014
因此它不会仅对网址的分号部分进行编码。
这是我的代码:
const response = await fetch(url, { method, headers });
以下是我如何发现我的网址在发送到服务器后编码不正确:
const responseURL = await response.url
console.log('displayUrl: '+responseURL);
您可以利用
encodeURIComponent
方法来确保您的 url 在 iOS 和 Android 上都正确编码。
const const baseUrl = 'https://example.testing.com/filterString=';
const encodedProducts = encodeURIComponent('product.code><CODE01;CODE02');
const url = baseUrl + encodedProducts;
console.log(url) //results in https://example.testing.com/filterString=product.code%3E%3CCODE01%3BCODE02
const response = await fetch(url, { method, headers });