gpt4 book ai didi

javascript - 使用 npm 请求向 SOAP api 发送帖子

转载 作者:数据小太阳 更新时间:2023-10-29 05:25:47 24 4
gpt4 key购买 nike

我正在努力做到这一点:

POST /oms/order.asmx HTTP/1.1  
Host:myserver.com
Content-Type: text/xml;
charset=utf-8
Content-Length: length
SOAPAction: "http://shipping_software/AddOrder"

这样做:

var newOrder = buildOrder(orderInfo);
var soapOptions = {
uri: '/oms/order.asmx',
headers: {
'Content-Type': 'text/xml',
'charset': 'utf-8',
'Content-Length': newOrder.length.toString(),
'SOAPAction': 'http://shipping_software/AddOrder',
'Host': 'myserver.com',
'Connection': 'keep-alive'
},
method: 'POST',
body: newOrder //New order is properly formed xml as a String
}
request(soapOptions, function(err, response) {
console.log(err);
console.log(response);
})
// console.log(newOrder);
});

这当前返回“无效的 uri”,当我将 URI 更改为 http://myserver.com/oms/order.asmx 时,我仍然收到 400 响应代码。

编辑: 我将内容类型固定在一行中 Content-Type: text/html; charset=utf-8 没有任何改进。

Edit2:我正在使用 XMLBuilder 构建我的 XML 数据并尝试提交它而不将其转换为字符串,但是来自 SOAP API 的连接超时。

Edit3:完整 SOAP 请求:

POST /oms/order.asmx HTTP/1.1
Host: myserver.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://oms/AddOrder"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthenticationHeader xmlns="http://sma-promail/">
<Username>string</Username>
<Password>string</Password>
</AuthenticationHeader>
<DebugHeader xmlns="http://sma-promail/">
<Debug>boolean</Debug>
<Request>string</Request>
</DebugHeader>
</soap:Header>
<soap:Body>
<AddOrder xmlns="http://sma-promail/">
<order>
<Header>
<ID>string</ID>
<EntryDate>dateTime</EntryDate>
<OrderEntryView>
<SeqID>int</SeqID>
<Description>string</Description>
</OrderEntryView>
<ReferenceNumber>string</ReferenceNumber>
<PONumber>string</PONumber>
<Comments>string</Comments>
<IpAddress>string</IpAddress>
<ApprovalComment>string</ApprovalComment>
<InsertDate>dateTime</InsertDate>
</Header>
<Classification>
<CampaignID>string</CampaignID>
<ResponseMedia>
<Description>string</Description>
</ResponseMedia>
<Source>
<Description>string</Description>
</Source>
<Issue>
<Issue>string</Issue>
</Issue>
<CustomerProject>
<ID>string</ID>
</CustomerProject>
<CustomerCode>string</CustomerCode>
<Store>string</Store>
<Department>string</Department>
<DistributionCenter>string</DistributionCenter>
<Vendor>string</Vendor>
</Classification>
<Shipping>
<FreightCarrier>
<Name>string</Name>
</FreightCarrier>
<FreightService>
<Description>string</Description>
</FreightService>
<FreightAccount>
<SeqID>int</SeqID>
<Description>string</Description>
<FreightCarrier xsi:nil="true" />
<Person xsi:nil="true" />
<ThirdAcctNo>string</ThirdAcctNo>
<NonResident>boolean</NonResident>
</FreightAccount>
<ShippingOption>
<Description>string</Description>
</ShippingOption>
<FreightCode>string</FreightCode>
<FreightCodeDescription>string</FreightCodeDescription>
<ShipComments>string</ShipComments>
<NeededBy>string</NeededBy>
<Rush>boolean</Rush>
<ReleaseDate>dateTime</ReleaseDate>
<ThirdPartyType>int</ThirdPartyType>
<ThirdAccountNumber>string</ThirdAccountNumber>
<NCShip>boolean</NCShip>
<NCPack>boolean</NCPack>
<NCOffers>boolean</NCOffers>
<NCHandling>boolean</NCHandling>
<NCOffShipHandling>boolean</NCOffShipHandling>
<NCSpecialHandling>boolean</NCSpecialHandling>
<NCRush>boolean</NCRush>
</Shipping>
<Money>
<PriceClass>
<SeqID>int</SeqID>
<Description>string</Description>
</PriceClass>
<ShippingHandlingCharge>decimal</ShippingHandlingCharge>
<RushHandlingCharge>decimal</RushHandlingCharge>
<NoChargeType>
<Description>string</Description>
</NoChargeType>
<DiscountAmount>decimal</DiscountAmount>
<DiscountPercent>float</DiscountPercent>
<DiscountCode>
<ID>string</ID>
<Description>string</Description>
</DiscountCode>
<Coupon>
<Code>string</Code>
</Coupon>
<SpecialHandlingCharge>decimal</SpecialHandlingCharge>
<CreditAmount>decimal</CreditAmount>
<GiftCertificate>
<UID>string</UID>
<Amount>decimal</Amount>
</GiftCertificate>
<GiftCertificateAmount>decimal</GiftCertificateAmount>
<TaxPercent>decimal</TaxPercent>
<NoChargeAmount>decimal</NoChargeAmount>
<TaxAmount>decimal</TaxAmount>
</Money>
<Payment>
<PaymentType>
<Description>string</Description>
<Sequence>int</Sequence>
</PaymentType>
<PaymentAmount>decimal</PaymentAmount>
<CCNumber>string</CCNumber>
<CCExpirationDate>string</CCExpirationDate>
<CSC>string</CSC>
<ARReference>string</ARReference>
</Payment>
<OrderVariables>
<OrderVariable>
<SeqID>int</SeqID>
<VariableField xsi:nil="true" />
<Value>string</Value>
</OrderVariable>
<OrderVariable>
<SeqID>int</SeqID>
<VariableField xsi:nil="true" />
<Value>string</Value>
</OrderVariable>
</OrderVariables>
<OrderedBy>
<ORDOBY>
<SeqID>int</SeqID>
<CustomerID>string</CustomerID>
</ORDOBY>
<FullName>string</FullName>
<FullNameWithSuffix>string</FullNameWithSuffix>
<CityStateZip>string</CityStateZip>
<CityStateZipCountry>string</CityStateZipCountry>
<CompoundAddress>string</CompoundAddress>
</OrderedBy>
<ShipTo>
<OrderShipTo>
<SeqID>int</SeqID>
<Flag>Other or OrderedBy</Flag>
<Key>string</Key>
<NeededBy>string</NeededBy>
<ReleaseDate>dateTime</ReleaseDate>
<Rush>boolean</Rush>
<RushHandling>decimal</RushHandling>
<Comments>string</Comments>
<FreightCarrier xsi:nil="true" />
<FreightService xsi:nil="true" />
<ThirdPartyType>int</ThirdPartyType>
<ThirdPartyAccountNumber>string</ThirdPartyAccountNumber>
<FreightCode>string</FreightCode>
<FreightCodeDescription>string</FreightCodeDescription>
<SpecialHandling xsi:nil="true" />
<SpecialHandlingCharge>decimal</SpecialHandlingCharge>
<ShippingHandlingCharge>decimal</ShippingHandlingCharge>
<FullName>string</FullName>
<FullNameWithSuffix>string</FullNameWithSuffix>
<CityStateZip>string</CityStateZip>
<CityStateZipCountry>string</CityStateZipCountry>
<CompoundAddress>string</CompoundAddress>
<PickPacks xsi:nil="true" />
</OrderShipTo>
<OrderShipTo>
<SeqID>int</SeqID>
<Flag>Other or OrderedBy</Flag>
<Key>string</Key>
<NeededBy>string</NeededBy>
<ReleaseDate>dateTime</ReleaseDate>
<Rush>boolean</Rush>
<RushHandling>decimal</RushHandling>
<Comments>string</Comments>
<FreightCarrier xsi:nil="true" />
<FreightService xsi:nil="true" />
<ThirdPartyType>int</ThirdPartyType>
<ThirdPartyAccountNumber>string</ThirdPartyAccountNumber>
<FreightCode>string</FreightCode>
<FreightCodeDescription>string</FreightCodeDescription>
<SpecialHandling xsi:nil="true" />
<SpecialHandlingCharge>decimal</SpecialHandlingCharge>
<ShippingHandlingCharge>decimal</ShippingHandlingCharge>
<FullName>string</FullName>
<FullNameWithSuffix>string</FullNameWithSuffix>
<CityStateZip>string</CityStateZip>
<CityStateZipCountry>string</CityStateZipCountry>
<CompoundAddress>string</CompoundAddress>
<PickPacks xsi:nil="true" />
</OrderShipTo>
</ShipTo>
<BillTo>
<Flag>Other or OrderedBy or DoNotUse or ShipTo</Flag>
<FullName>string</FullName>
<FullNameWithSuffix>string</FullNameWithSuffix>
<CityStateZip>string</CityStateZip>
<CityStateZipCountry>string</CityStateZipCountry>
<CompoundAddress>string</CompoundAddress>
</BillTo>
<Offers>
<OfferOrdered>
<Offer xsi:nil="true" />
<Quantity>int</Quantity>
<CanceledQuantity>int</CanceledQuantity>
<OrderShipTo xsi:nil="true" />
<OrderShipToKey xsi:nil="true" />
<PriceType>unsignedByte</PriceType>
<UnitPrice>decimal</UnitPrice>
<ShipType>short</ShipType>
<ShippingHandling>decimal</ShippingHandling>
<Discounts>decimal</Discounts>
<DiscountPercent>int</DiscountPercent>
<DocumentID>string</DocumentID>
<SeqID>int</SeqID>
<CloneLine>int</CloneLine>
<Unapproved>boolean</Unapproved>
<ShipToKey>string</ShipToKey>
<FgnOrder>string</FgnOrder>
<Comments>string</Comments>
<RCOrderKey>string</RCOrderKey>
<Recurring>boolean</Recurring>
<LineNumber>int</LineNumber>
<Variables xsi:nil="true" />
<ProductDetails xsi:nil="true" />
</OfferOrdered>
<OfferOrdered>
<Offer xsi:nil="true" />
<Quantity>int</Quantity>
<CanceledQuantity>int</CanceledQuantity>
<OrderShipTo xsi:nil="true" />
<OrderShipToKey xsi:nil="true" />
<PriceType>unsignedByte</PriceType>
<UnitPrice>decimal</UnitPrice>
<ShipType>short</ShipType>
<ShippingHandling>decimal</ShippingHandling>
<Discounts>decimal</Discounts>
<DiscountPercent>int</DiscountPercent>
<DocumentID>string</DocumentID>
<SeqID>int</SeqID>
<CloneLine>int</CloneLine>
<Unapproved>boolean</Unapproved>
<ShipToKey>string</ShipToKey>
<FgnOrder>string</FgnOrder>
<Comments>string</Comments>
<RCOrderKey>string</RCOrderKey>
<Recurring>boolean</Recurring>
<LineNumber>int</LineNumber>
<Variables xsi:nil="true" />
<ProductDetails xsi:nil="true" />
</OfferOrdered>
</Offers>
<OrderRecurrenceSchedule>
<RecurrenceSchedules>
<SeqID>int</SeqID>
<ID>string</ID>
<Description>string</Description>
<Definition>string</Definition>
<DefinitionDetail>string</DefinitionDetail>
<Schedule>EveryXDays or EveryXWeeks or EveryXMonths</Schedule>
<ScheduleCount>int</ScheduleCount>
<Cycle>Rolling or Custom</Cycle>
<StartCycleDate>dateTime</StartCycleDate>
<DaysToJoin>int</DaysToJoin>
<MonthlyRecurrenceType>DayOfMonth or WeekOfMonthAndDayOfWeek</MonthlyRecurrenceType>
<MinimumRecurrences>int</MinimumRecurrences>
<MaximumRecurrences>int</MaximumRecurrences>
<RecurrenceIncrement>int</RecurrenceIncrement>
<AllowInfiniteRecurrence>boolean</AllowInfiniteRecurrence>
<InfiniteTag>string</InfiniteTag>
<DurationTag>string</DurationTag>
<ExpirationDate>dateTime</ExpirationDate>
<NextCycleDate>dateTime</NextCycleDate>
<HasValidCycleDate>boolean</HasValidCycleDate>
<AnyOffer>boolean</AnyOffer>
<RecurrenceScheduleShippingOptions xsi:nil="true" />
</RecurrenceSchedules>
<RecurrenceOfferFlag>boolean</RecurrenceOfferFlag>
<RecurrenceShippingOption>
<Description>string</Description>
</RecurrenceShippingOption>
<RecurrenceSpecialHandlingCharge>decimal</RecurrenceSpecialHandlingCharge>
<NumberRecurrence>int</NumberRecurrence>
</OrderRecurrenceSchedule>
<OrderBudget>
<Person>
<Name xsi:nil="true" />
<CompanyInfo xsi:nil="true" />
<Address xsi:nil="true" />
<ContactInfo xsi:nil="true" />
<BillingInfo xsi:nil="true" />
<Variables xsi:nil="true" />
</Person>
</OrderBudget>
</order>
</AddOrder>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<DebugHeader xmlns="http://sma-promail/">
<Debug>boolean</Debug>
<Request>string</Request>
</DebugHeader>
</soap:Header>
<soap:Body>
<AddOrderResponse xmlns="http://sma-promail/">
<AddOrderResult>
<OrderSeqID>int</OrderSeqID>
<OrderID>string</OrderID>
</AddOrderResult>
</AddOrderResponse>
</soap:Body>
</soap:Envelope>

最佳答案

到目前为止的猜测,但假设所有 header 都已正确设置,突出的一件事是 content-type header - 您已将类型和字符集拆分为多个键:值对;它应该在一行中:

var newOrder = buildOrder(orderInfo);
var soapOptions = {
uri: 'http://myserver.com/oms/order.asmx',
headers: {
'Content-Type': 'text/xml; charset=utf-8',
'Content-Length': newOrder.length.toString(),
'SOAPAction': 'http://shipping_software/AddOrder',
'Host': 'myserver.com',
'Connection': 'keep-alive'
},
method: 'POST',
body: newOrder //New order is properly formed xml as a String
}
request(soapOptions, function(err, response) {
console.log(err);
console.log(response);
})
// console.log(newOrder);
});

此外,正如您在问题中所述,请确保 uri 是完全限定的 URL,而不仅仅是路径后缀。

关于javascript - 使用 npm 请求向 SOAP api 发送帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32132476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com