我使用 WHMCS API。我正在尝试使用他们的 API 发出请求。该 api 需要该数组需要被序列化并在 base64_encode 中。他们给出了 php 的示例,我尝试将其转换为 C# 代码,但它不起作用。
PHP代码:
$values["customfields"] = base64_encode(serialize(array("1"=>"Google")));
我的 C# 代码:
CustomFields[] cf = new CustomFields[2];
CustomFields cf0 = new CustomFields();
cf0.number = "16";
cf0.value = WebSiteTitle;
CustomFields cf1 = new CustomFields();
cf1.number = "14";
cf1.value = NewDomain;
cf[0] = cf0;
cf[1] = cf1;
byte[] bytecf = ObjectToByteArray2(cf);
String CString = Convert.ToBase64String(bytecf);
form.Add("customfields", CString);
private static byte[] ObjectToByteArray2(Object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
[Serializable]
public class CustomFields
{
public string number { get; set; }
public string value { get; set; }
}
我做错什么了吗?因为当我尝试提出请求时它不起作用并且没有在我想要添加的地方添加这个字段。