我们正在尝试与API连接,以发布线索和执行一些其他功能。我们正在使用VB6,不幸的是,我们没有从使用该应用程序接口的人那里得到太多帮助。
他们给我们发来了一个用C#写的代码。我们需要和他们做同样的事情,但是在VB6中。我们不能使用"HttpWebRequest“,因为据我们所知,它不适用于VB6。
这是我们收到的代码:
public class LeadField
{
public string FieldCode;
public string FieldValue;
}
public class aLink
{
public string href;
public string methods;
public string rel = "lead";
public string description = "Get, update, or delete the lead";
}
public class ReturnLead
{
public string message;
public LeadField[] detail;
public aLink[] links;
}
if (objSales.Count == 1)
{
ArrayList objLeadField = new ArrayList();
csDealSheet objDealSheet = objSales.First();
objLeadField.Add(new LeadField() { FieldCode = "AgentCode", FieldValue = objDealSheet.DataObject.REP.ToString() });
objLeadField.Add(new LeadField() { FieldCode = "VendorCode", FieldValue = "FL 01" });
objLeadField.Add(new LeadField() { FieldCode = "CompanyName", FieldValue = objDealSheet.DataObject.COMPANY });
objLeadField.Add(new LeadField() { FieldCode = "AccountNumber", FieldValue = objDealSheet.DataObject.Account.ToUpper() });
objLeadField.Add(new LeadField() { FieldCode = "ContactFirstName", FieldValue = objDealSheet.DataObject.FirstName });
objLeadField.Add(new LeadField() { FieldCode = "ContactLastName", FieldValue = objDealSheet.DataObject.LastName });
objLeadField.Add(new LeadField() { FieldCode = "PrimaryPhone", FieldValue = objDealSheet.DataObject.PHONE10 });
//objLeadField.Add(new LeadField() { FieldCode = "LanguageCode", FieldValue = objDealSheet.DataObject.LANGUAGE.Replace("E", "English").Replace("S", "Spanish") });
objLeadField.Add(new LeadField() { FieldCode = "NumberOfAccounts", FieldValue = "1" });
objLeadField.Add(new LeadField() { FieldCode = "ProductTypeCode", FieldValue = objDealSheet.DataObject.Commodity });
objLeadField.Add(new LeadField() { FieldCode = "ProviderCode", FieldValue = objDealSheet.DataObject.UTILITY.ToUpper()});
objLeadField.Add(new LeadField() { FieldCode = "AccountHolderFullName", FieldValue = objDealSheet.DataObject.FirstName + " " + objDealSheet.DataObject.LastName });
objLeadField.Add(new LeadField() { FieldCode = "ProductCode", FieldValue = objDealSheet.DataObject.PROGRAM });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddress1", FieldValue = objDealSheet.DataObject.ST_NUMB + " " + objDealSheet.DataObject.ADDR });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddress2", FieldValue = objDealSheet.DataObject.UNIT });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddressCity", FieldValue = objDealSheet.DataObject.CITY });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddressPostalCode", FieldValue = objDealSheet.DataObject.ZIP });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddressState", FieldValue = objDealSheet.DataObject.ST });
objLeadField.Add(new LeadField() { FieldCode = "ServiceAddressCountry", FieldValue = objDealSheet.DataObject.COUNTRY.Replace("US", "USA") });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddress1", FieldValue = objDealSheet.DataObject.BILLNUMB + " " + objDealSheet.DataObject.BILLADDR });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddress2", FieldValue = objDealSheet.DataObject.BILLUNIT });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddressCity", FieldValue = objDealSheet.DataObject.BILLCITY });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddressPostalCode", FieldValue = objDealSheet.DataObject.BILLZIP });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddressState", FieldValue = objDealSheet.DataObject.BILLST });
objLeadField.Add(new LeadField() { FieldCode = "BillingAddressCountry", FieldValue = objDealSheet.DataObject.BILLCOUNTR.Replace("US", "USA") });
//Send one lead
StringBuilder sb = new StringBuilder();
new JavaScriptSerializer().Serialize(objLeadField, sb);
string format = sb.ToString();
format = "[" + format.Substring(1, format.Length - 2) + "]";
}
//Create the web request
string url="https://www.dummyurl.com/leads";
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
// Create a byte array of the data we want to send
byte[] byteData = UTF8Encoding.UTF8.GetBytes(Lead);
// Set the content length in the request headers
request.ContentLength = byteData.Length;
string Username=********;
string Password=********;
request.Headers.Add("userName",Username);
request.Headers.Add("password",Password);
}
// Write data
using (Stream postStream = request.GetRequestStream())
postStream.Write(byteData, 0, byteData.Length);
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Save as string
string res = reader.ReadToEnd();
if (res.Length > 0)
{
List<ReturnLead> ServRes = new JavaScriptSerializer().Deserialize<List<ReturnLead>>(res);
ReturnLead lead = ServRes.First();
string LeadID = lead.links[0].href.Substring(lead.links[0].href.LastIndexOf("/") + 1, lead.links[0].href.Length - lead.links[0].href.LastIndexOf("/") - 1);
}
}
我们已经看了很多VB6/JSON/POST请求,并能够将一些东西组合在一起,但它甚至都不能工作。我们以前从未在VB6中这样做过,也不精通C#。
只是想知道是否有人可以给我们一个开始或一些VB6的方向来转移这一点。
谢谢!
转载请注明出处:http://www.xingnongyuan.com/article/20230526/2462195.html