我有一個asp.net web api,我需要從數據庫中獲取電子郵件列表。我需要傳遞數據庫連接字符串作爲參數。我知道這樣傳遞連接字符串是不安全的,但這就是要求。每當我傳入連接字符串,Rest客戶端都會給我404 - Not Found。但是我在數據庫類中設置了連接字符串,它正在工作。那麼我怎樣才能將連接作爲字符串傳遞並使其從數據庫中檢索電子郵件?如何使用GET傳遞連接字符串作爲參數?
代碼從DB
public List<EmailContacts> getEmailContacts(string connstr)
{
List<EmailContacts> emailList = new List<EmailContacts>();
MySqlDataReader rdr = null;
MySqlConnection myconn = new MySqlConnection(connstr);
String sqlstr = "SELECT * FROM emailcontacts";
MySqlCommand cmd = new MySqlCommand(sqlstr, myconn);
myconn.Open();
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
EmailContacts e = new EmailContacts();
e.Id = rdr.GetInt32(0);
e.Name = rdr.GetString(1);
e.Email = rdr.GetString(2);
emailList.Add(e);
}
rdr.Close();
myconn.Close();
myconn.Dispose();
return emailList;
}
檢索數據獲取API
[HttpGet]
[Route("api/EmailContacts/{connstr}")]
public List<EmailContacts> Get(string connstr)
{
SalesDBConn db = new SalesDBConn();
return db.getEmailContacts(connstr);
}
這是我試圖通過在連接字符串中的其餘客戶
http://localhost:59547/api/EmailContacts/server = example.com; uid = myusername; pwd = mypassword; database = mydb_example
您是否嘗試從連接字符串中刪除所有空格字符? –
@KobyDouek是的。仍然給出相同的錯誤 – batwing
您是否嘗試從連接字符串中刪除'http:// localhost:59547/api/EmailContacts /'部分?那個有什麼用? –