概要
payloadをxmlでPOSTする必要があるAPIがあります。
XMLは使いづらいため、オブジェクトをXMLに変換する関数を作りましたが、URLなどに?や&を含んだ場合、XMLの変換が上手くいかずAPI POST時に失敗してしまいます。
実際の関数
TypeScript
1export function OBJtoXML(obj:any) { 2 var xml = ''; 3 for (var prop in obj) { 4 xml += "<" + prop + ">"; 5 if(Array.isArray(obj[prop])) { 6 for (var array of obj[prop]) { 7 // A real botch fix here 8 xml += "</" + prop + ">"; 9 xml += "<" + prop + ">"; 10 11 xml += OBJtoXML(new Object(array)); 12 } 13 } else if (typeof obj[prop] == "object") { 14 xml += OBJtoXML(new Object(obj[prop])); 15 } else { 16 xml += obj[prop]; 17 } 18 xml += "</" + prop + ">"; 19 } 20 var xml = xml.replace(/<\/?[0-9]{1,}>/g,''); 21 return xml 22}
サンプルの引数
const param = { ShipCompanyCode: 'サンプル', ShipInvoiceNumber1: '573479387598', ShipDate: '2022/1/1', ShipUrl: `https://sample.com\?searchKind=S004\&locale=ja\&reqCodeNo1=573479387598` }
質問
おそらく原因はURLの?にあると思います。そこでエスケープを入れましたが、やはり上手く行きません。
どなたアドバイス頂けないでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/06 09:29