我需要从我的asp.net web api调用第三方Web服务。 web服务需要身份验证并在成功时发送加密密码,需要将其附加到对web服务的任何进一步请求。这里应该是我在控制器中创建webservice的新实例,还是有一个静态的webservice实例被引用控制器。
我使用OWIN自托管作为控制台应用程序托管我的webapi。所以在我的Program.cs中我有
public static WebServiceRequests mWebServiceRequest;
static void Main(string[] args)
{
string baseAddress = "http://localhost:9000/";
mWebServiceRequest = new WebServiceRequests();
// Start OWIN host
using (WebApp.Start<Startup>(url: baseAddress))
{
// Create HttpCient and make a request to api/values
// HttpClient client = new HttpClient();
// var response = client.GetAsync(baseAddress + "api/values").Result;
// Console.WriteLine(response);
// Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Console.ReadLine();
}
}
我的控制器就像
public class MFOrdersController : ApiController
{
public IEnumerable<string> Get()
{
Program.mWebServiceRequest.GetData();
return new string[] { "value3", "value4" };
}
}
这是正确的方式还是应该
public class MFOrdersController : ApiController
{
WebServiceRequests mWebServiceRequest = new WebServiceRequests();
public IEnumerable<string> Get()
{
mWebServiceRequest.GetData();
return new string[] { "value3", "value4" };
}
}
webservicerequest类如下
class WebServiceRequests
{
private xstarmf.MFOrderEntryClient mXStarMFService;
private string strEncryptedPassword;
private string strPassKey;
public WebServiceRequests()
{
mXStarMFService = new xstarmf.MFOrderEntryClient();
x
GeneratePassKey();
GetPassword("TEst", "test123", strPassKey);
}
我需要传递strEncryptedPassword,这是我在每个请求(GetData())中从GetPassword函数获得的,xstarmf是一个svcclient
由于