美好的一天,
我是编程和尝试使用API的新手。
我在API文档中看到了这个例子
using (var content = new StringContent("{ \"orderNumber\": \"TEST-ORDER-API-DOCS\", \"orderKey\": \"0f6bec18-3e89-4881-83aa-f392d84f4c74\", \"orderDate\": \"2015-06-29T08:46:27.0000000\", \"paymentDate\": \"2015-06-29T08:46:27.0000000\", \"shipByDate\": \"2015-07-05T00:00:00.0000000\", \"orderStatus\": \"awaiting_shipment\", \"customerId\": 37701499, \"customerUsername\": \"headhoncho@whitehouse.gov\", \"customerEmail\": \"headhoncho@whitehouse.gov\", \"billTo\": { \"name\": \"The President\", \"company\": null, \"street1\": null, \"street2\": null, \"street3\": null, \"city\": null, \"state\": null, \"postalCode\": null, \"country\": null, \"phone\": null, \"residential\": null }, \"shipTo\": { \"name\": \"The President\", \"company\": \"US Govt\", \"street1\": \"1600 Pennsylvania Ave\", \"street2\": \"Oval Office\", \"street3\": null, \"city\": \"Washington\", \"state\": \"DC\", \"postalCode\": \"20500\", \"country\": \"US\", \"phone\": \"555-555-5555\", \"residential\": true }, \"items\": [ { \"lineItemKey\": \"vd08-MSLbtx\", \"sku\": \"ABC123\", \"name\": \"Test item #1\", \"imageUrl\": null, \"weight\": { \"value\": 24, \"units\": \"ounces\" }, \"quantity\": 2, \"unitPrice\": 99.99, \"taxAmount\": 2.5, \"shippingAmount\": 5, \"warehouseLocation\": \"Aisle 1, Bin 7\", \"options\": [ { \"name\": \"Size\", \"value\": \"Large\" } ], \"productId\": 123456, \"fulfillmentSku\": null, \"adjustment\": false, \"upc\": \"32-65-98\" }, { \"lineItemKey\": null, \"sku\": \"DISCOUNT CODE\", \"name\": \"10% OFF\", \"imageUrl\": null, \"weight\": { \"value\": 0, \"units\": \"ounces\" }, \"quantity\": 1, \"unitPrice\": -20.55, \"taxAmount\": null, \"shippingAmount\": null, \"warehouseLocation\": null, \"options\": [], \"productId\": 123456, \"fulfillmentSku\": \"SKU-Discount\", \"adjustment\": true, \"upc\": null } ], \"amountPaid\": 218.73, \"taxAmount\": 5, \"shippingAmount\": 10, \"customerNotes\": \"Thanks for ordering!\", \"internalNotes\": \"Customer called and would like to upgrade shipping\", \"gift\": true, \"giftMessage\": \"Thank you!\", \"paymentMethod\": \"Credit Card\", \"requestedShippingService\": \"Priority Mail\", \"carrierCode\": \"fedex\", \"serviceCode\": \"fedex_2day\", \"packageCode\": \"package\", \"confirmation\": \"delivery\", \"shipDate\": \"2015-07-02\", \"weight\": { \"value\": 25, \"units\": \"ounces\" }, \"dimensions\": { \"units\": \"inches\", \"length\": 7, \"width\": 5, \"height\": 6 }, \"insuranceOptions\": { \"provider\": \"carrier\", \"insureShipment\": true, \"insuredValue\": 200 }, \"internationalOptions\": { \"contents\": null, \"customsItems\": null }, \"advancedOptions\": { \"warehouseId\": 98765, \"nonMachinable\": false, \"saturdayDelivery\": false, \"containsAlcohol\": false, \"mergedOrSplit\": false, \"mergedIds\": [], \"parentId\": null, \"storeId\": 12345, \"customField1\": \"Custom data that you can add to an order. See Custom Field #2 & #3 for more info!\", \"customField2\": \"Per UI settings, this information can appear on some carrier's shipping labels. See link below\", \"customField3\": \"https://help.shipstation.com/hc/en-us/articles/206639957\", \"source\": \"Webstore\", \"billToParty\": null, \"billToAccount\": null, \"billToPostalCode\": null, \"billToCountryCode\": null }}", System.Text.Encoding.Default, "application/json"))
这实际上是一个愚蠢的问题,但我想要做的是为这个字符串内容添加变量。问题是我不太明白如何阅读或如何格式化这个字符串(特别是“\”)。如果我需要添加“\”,我通常在字符串中添加@,所以我不确定“\”是否应该包含在某些部分的字符串中,或者在本例中用于连接。
有人可以帮助我如何向这个字符串内容添加变量吗?
感谢您的帮助!
答案 0 :(得分:0)
来自MSDN
根据字符串提供HTTP内容。
StringContent的基本用法是在访问任何API时将数据发送到服务器。
这里我将在系统中提供一个简单的Login API示例。
// Following is the key value pairs (data) which we need to send to server via API.
Dictionary<string, string> jsonValues = new Dictionary<string, string>();
jsonValues.Add("username", "testuser");
jsonValues.Add("password", "XXXXXXXXXX"); // better to encrypt passwod before sending to API.
HttpClient client = new HttpClient();
// Used Newtonsoft.Json library to convert object to json string. It is available in Nuget package.
StringContent sc = new StringContent(JsonConvert.SerializeObject(jsonValues), UnicodeEncoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(webAddress, sc);
string content = await response.Content.ReadAsStringAsync();
Console.WriteLine("Result: " + content);
检查this SO帖子以获取其他用户的其他解释。
答案 1 :(得分:0)
你不能在你的内容中使用“\”字符,你必须将你的内容转换为Base64
流并将其还原回目的地的计划内容,你可以找到完整的解释和这个答案中的代码:
答案 2 :(得分:0)
要回答你的其他问题, @在字符串之前意味着它是一个字符串文字,你输入的所有内容都将在字符串中逐字记录。
在字符串变量中,某些字符必须“转义”,而\是转义字符。
要获得双引号,您必须输入\“
单个\ in,你输入两个反斜杠
换行符是\ n
标签是\ t
答案 3 :(得分:0)
StringContent sc = new StringContent("{\"title\":\"" + yourStringVariable + "\"}");