Я пытаюсь отправить base64String данных с помощью моего клиента на свой сервер, который использует WCF. У меня возникают проблемы с методом Post с обеих сторон. Кажется, я ничего не получаю и не обрабатываю ни одну из передаваемых данных.Использование клиента для данных POST и прием данных с использованием метода POF POF
КЛИЕНТ СТОРОНА:
private void On_FingerDetect(object sender, FingerPrintArgs e)
{
if (!button1.Enabled)
{
byte[] newPrint = e.getPrint();
string print = Convert.ToBase64String(newPrint);
string json = JsonConvert.SerializeObject(new KeyValuePair<string, string>("print", print));
// Post URL here
PostAsync("http://localhost:4686/Service1.svc/doPost/", json);
toolStripStatusLabel1.Text = "Processing Finger Print";
//toolStripStatusLabel1.Text = print;
}
}
public async Task PostAsync(string uri, string data)
{
var httpClient = new HttpClient();
var response = await httpClient.PostAsync(uri, new StringContent(data));
var content = response.Content;
await content.ReadAsStringAsync();
button1.Enabled = true;
toolStripStatusLabel1.Text = data;
}
SERVER СТОРОНА:
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, UriTemplate = "doPost/{value}")]
[OperationContract]
string doPost(string value);
public class Service1 : IService1
{
static string myConnection = "DSN=MS Access Database";
OdbcConnection myConn = new OdbcConnection(myConnection);
OdbcCommand mycommand;
OdbcTransaction transaction;
OdbcDataAdapter adapter;
public string doPost(string value)
{
// Trace.WriteLine("hello", value);
byte[] b = Convert.FromBase64String(value);
OdbcConnection myConn = new OdbcConnection(myConnection);
string query = "INSERT INTO fingerPrintDb (fingerPrint) VALUES ('" + value + "')";
OdbcCommand mycommand = new OdbcCommand(query, myConn);
myConn.Open();
transaction = myConn.BeginTransaction();
mycommand.Connection = myConn;
mycommand.Transaction = transaction;
mycommand.CommandText = query;
mycommand.ExecuteNonQuery();
transaction.Commit();
myConn.Close();
return "Success";
}
Я выбрал параметры. Когда я запускаю его, я получаю эту ошибку: Говорит им, используя: «GET /Service1.svc/doPost», когда им полагается использовать пост – tam
Приложение Insights Телеметрия (не настроенная): {"name": "Microsoft.ApplicationInsights. Dev.Request "," time ":" 2017-02-17T19: 16: 24.7684792Z "," tags ": {" ai.operation.name ":" GET /Service1.svc/doPost","ai.operation. идентификатор ":" JlJUJw/8Sdw = " "ai.location.ip": ":: 1", "ai.cloud.roleInstance": "DESKTOP-0U0ICHR", "ai.internal.sdkVersion":" веб-сайт: 2,2 .0-738 "}," data ": {" baseType ":" RequestData "," baseData ": {" ver ": 2," id ":" JlJUJw/8Sdw = "," name ":" GET/Service1 .svc/doPost " "продолжительность": "00: 00: 00,0050000", "успех" ложь "responseCode": "405", "URL":" HTTP: // локальный: 4686/Service1.svc/doPost "," properties ": {" DeveloperMode ":" true "}}}} – tam
Это полная ошибка, я получаю – tam