加利福尼亚州提供了这个CATaxRateAPI.cs文件,我将在此消息的末尾发布其中一些文件的代码。
不幸的是,他们没有提供任何我可以找到的如何使用它的示例,所以我正在为如何计算特定地址的税率而苦苦挣扎。
以下是我的代码,到目前为止,它缺少向他们的系统实际提交请求,因为我不知道如何做到这一点。
using services.gis.boe.ca.gov.api.taxrates;
private void button2_Click(object sender, EventArgs e)
{
CARateRequest mrrequest = new CARateRequest();
mrrequest.City = "Anaheim";
mrrequest.State = "CA";
mrrequest.StreetAddress = "1313 Disneyland Dr";
mrrequest.ZipCode = 92802;
//Obviously missing here is anything that actually sends the request to the california servers
//var mytaxresult = GetRate(mrrequest);
//MessageBox.Show(mytaxresult);
}我不能发布整个CATaxRateAPI.cs文件,因为它太长了,但这是加利福尼亚提供的一些文件。有人能把我引向正确的方向,这样我就知道如何将我的请求发送到他们的服务器上吗?
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: System.Runtime.Serialization.ContractNamespaceAttribute("http://services.gis.boe.ca.gov/api/taxrates", ClrNamespace="services.gis.boe.ca.gov.api.taxrates")]
namespace services.gis.boe.ca.gov.api.taxrates
{
using System.Runtime.Serialization;
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="CARateRequest", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class CARateRequest : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string CityField;
private System.Nullable<double> LatitudeField;
private System.Nullable<double> LongitudeField;
private string StateField;
private string StreetAddressField;
private string TokenField;
private System.Nullable<int> ZipCodeField;
private System.Nullable<int> ZipCodePlusFourField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string City
{
get
{
return this.CityField;
}
set
{
this.CityField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<double> Latitude
{
get
{
return this.LatitudeField;
}
set
{
this.LatitudeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<double> Longitude
{
get
{
return this.LongitudeField;
}
set
{
this.LongitudeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string State
{
get
{
return this.StateField;
}
set
{
this.StateField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string StreetAddress
{
get
{
return this.StreetAddressField;
}
set
{
this.StreetAddressField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Token
{
get
{
return this.TokenField;
}
set
{
this.TokenField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<int> ZipCode
{
get
{
return this.ZipCodeField;
}
set
{
this.ZipCodeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<int> ZipCodePlusFour
{
get
{
return this.ZipCodePlusFourField;
}
set
{
this.ZipCodePlusFourField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="CARateResponseCollection", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class CARateResponseCollection : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string AppVersionField;
private services.gis.boe.ca.gov.api.taxrates.CARateResponse[] CARateResponsesField;
private string DisclaimerField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string AppVersion
{
get
{
return this.AppVersionField;
}
set
{
this.AppVersionField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public services.gis.boe.ca.gov.api.taxrates.CARateResponse[] CARateResponses
{
get
{
return this.CARateResponsesField;
}
set
{
this.CARateResponsesField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Disclaimer
{
get
{
return this.DisclaimerField;
}
set
{
this.DisclaimerField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="CARateResponse", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class CARateResponse : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private int BufferSizeField;
private services.gis.boe.ca.gov.api.taxrates.CARateRequest CARateRequestField;
private services.gis.boe.ca.gov.api.taxrates.Error[] ErrorsField;
private System.DateTime ResponseDateField;
private services.gis.boe.ca.gov.api.taxrates.RateInformation[] ResponsesField;
private string TermsOfUseField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public int BufferSize
{
get
{
return this.BufferSizeField;
}
set
{
this.BufferSizeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public services.gis.boe.ca.gov.api.taxrates.CARateRequest CARateRequest
{
get
{
return this.CARateRequestField;
}
set
{
this.CARateRequestField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public services.gis.boe.ca.gov.api.taxrates.Error[] Errors
{
get
{
return this.ErrorsField;
}
set
{
this.ErrorsField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.DateTime ResponseDate
{
get
{
return this.ResponseDateField;
}
set
{
this.ResponseDateField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public services.gis.boe.ca.gov.api.taxrates.RateInformation[] Responses
{
get
{
return this.ResponsesField;
}
set
{
this.ResponsesField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string TermsOfUse
{
get
{
return this.TermsOfUseField;
}
set
{
this.TermsOfUseField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="Error", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class Error : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string CodeField;
private string MessageField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Code
{
get
{
return this.CodeField;
}
set
{
this.CodeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Message
{
get
{
return this.MessageField;
}
set
{
this.MessageField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="RateInformation", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class RateInformation : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private services.gis.boe.ca.gov.api.taxrates.RateDetails DetailsField;
private System.Nullable<double> RateField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public services.gis.boe.ca.gov.api.taxrates.RateDetails Details
{
get
{
return this.DetailsField;
}
set
{
this.DetailsField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<double> Rate
{
get
{
return this.RateField;
}
set
{
this.RateField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="RateDetails", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.CARateRequest))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.CARateResponseCollection))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.CARateResponse[]))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.CARateResponse))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.Error[]))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.Error))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.RateInformation[]))]
[System.Runtime.Serialization.KnownTypeAttribute(typeof(services.gis.boe.ca.gov.api.taxrates.RateInformation))]
public partial class RateDetails : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string CalcMethodField;
private object CityField;
private string CommentsField;
private string ConfidenceField;
private string CountyField;
private string JurisdictionField;
private string TACField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string CalcMethod
{
get
{
return this.CalcMethodField;
}
set
{
this.CalcMethodField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public object City
{
get
{
return this.CityField;
}
set
{
this.CityField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Comments
{
get
{
return this.CommentsField;
}
set
{
this.CommentsField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Confidence
{
get
{
return this.ConfidenceField;
}
set
{
this.ConfidenceField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string County
{
get
{
return this.CountyField;
}
set
{
this.CountyField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Jurisdiction
{
get
{
return this.JurisdictionField;
}
set
{
this.JurisdictionField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string TAC
{
get
{
return this.TACField;
}
set
{
this.TACField = value;
}
}
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://services.gis.boe.ca.gov/api/taxrates", ConfigurationName="CATaxRateAPI")]
public interface CATaxRateAPI
{
[System.ServiceModel.OperationContractAttribute(Action="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/Hello", ReplyAction="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/HelloResponse")]
string Hello(int value);
[System.ServiceModel.OperationContractAttribute(Action="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/Hello", ReplyAction="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/HelloResponse")]
System.Threading.Tasks.Task<string> HelloAsync(int value);
[System.ServiceModel.OperationContractAttribute(Action="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/GetRate", ReplyAction="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/GetRateResponse")]
services.gis.boe.ca.gov.api.taxrates.CARateResponseCollection GetRate(services.gis.boe.ca.gov.api.taxrates.CARateRequest request);
[System.ServiceModel.OperationContractAttribute(Action="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/GetRate", ReplyAction="http://services.gis.boe.ca.gov/api/taxrates/CATaxRateAPI/GetRateResponse")]
System.Threading.Tasks.Task<services.gis.boe.ca.gov.api.taxrates.CARateResponseCollection> GetRateAsync(services.gis.boe.ca.gov.api.taxrates.CARateRequest request);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface CATaxRateAPIChannel : CATaxRateAPI, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class CATaxRateAPIClient : System.ServiceModel.ClientBase<CATaxRateAPI>, CATaxRateAPI
{
public CATaxRateAPIClient()
{
}
public CATaxRateAPIClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public CATaxRateAPIClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public CATaxRateAPIClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public CATaxRateAPIClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public string Hello(int value)
{
return base.Channel.Hello(value);
}
public System.Threading.Tasks.Task<string> HelloAsync(int value)
{
return base.Channel.HelloAsync(value);
}
public services.gis.boe.ca.gov.api.taxrates.CARateResponseCollection GetRate(services.gis.boe.ca.gov.api.taxrates.CARateRequest request)
{
return base.Channel.GetRate(request);
}
public System.Threading.Tasks.Task<services.gis.boe.ca.gov.api.taxrates.CARateResponseCollection> GetRateAsync(services.gis.boe.ca.gov.api.taxrates.CARateRequest request)
{
return base.Channel.GetRateAsync(request);
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
[assembly: System.Runtime.Serialization.ContractNamespaceAttribute("http://services.gis.boe.ca.gov/api/taxrates", ClrNamespace="services.gis.boe.ca.gov.api.taxrates")]
namespace services.gis.boe.ca.gov.api.taxrates
{
using System.Runtime.Serialization;
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="CARateRequest", Namespace="http://services.gis.boe.ca.gov/api/taxrates")]
public partial class CARateRequest : object, System.Runtime.Serialization.IExtensibleDataObject
{
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
private string CityField;
private System.Nullable<double> LatitudeField;
private System.Nullable<double> LongitudeField;
private string StateField;
private string StreetAddressField;
private string TokenField;
private System.Nullable<int> ZipCodeField;
private System.Nullable<int> ZipCodePlusFourField;
public System.Runtime.Serialization.ExtensionDataObject ExtensionData
{
get
{
return this.extensionDataField;
}
set
{
this.extensionDataField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string City
{
get
{
return this.CityField;
}
set
{
this.CityField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<double> Latitude
{
get
{
return this.LatitudeField;
}
set
{
this.LatitudeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<double> Longitude
{
get
{
return this.LongitudeField;
}
set
{
this.LongitudeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string State
{
get
{
return this.StateField;
}
set
{
this.StateField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string StreetAddress
{
get
{
return this.StreetAddressField;
}
set
{
this.StreetAddressField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public string Token
{
get
{
return this.TokenField;
}
set
{
this.TokenField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<int> ZipCode
{
get
{
return this.ZipCodeField;
}
set
{
this.ZipCodeField = value;
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<int> ZipCodePlusFour
{
get
{
return this.ZipCodePlusFourField;
}
set
{
this.ZipCodePlusFourField = value;
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]发布于 2018-12-14 05:07:03
你没有说你有什么版本的visual studio,它们之间的说明略有不同,但大意是:
在解决方案资源管理器中,右键单击引用,单击添加服务引用,然后添加对此URL的引用:
http://services.gis.boe.ca.gov/api/taxrates/rates.svc?singlewsdl
完成向导
Visual studio将创建一组客户端类,您可以在这些类上实例化和调用方法。
发布于 2018-12-14 08:39:18
如果其他人正在寻找关于CA Tax rate API的具体答案,这里是我修改后的代码,现在可以使用了。我使用了Caius Jard答案中的建议来添加服务引用,然后使用了以下代码:
private void button2_Click(object sender, EventArgs e)
{
// Use the 'client' variable to call operations on the service.
CARateRequest mrrequest = new CARateRequest();
mrrequest.City = "Anaheim";
mrrequest.State = "CA";
mrrequest.StreetAddress = "1313 Disneyland Dr";
mrrequest.ZipCode = 92802;
CATaxRateAPIClient client = new CATaxRateAPIClient();
var myrate = client.GetRate(mrrequest);
MessageBox.Show(myrate.CARateResponses[0].Responses[0].Rate.ToString());
// Close the client.
client.Close();
}https://stackoverflow.com/questions/53769851
复制相似问题