Я просто хочу передать параметры Json в (http://localhost:8700/api/signals/Web_Collection?commit=true), используя webapi с базовой аутентификацией, с проверкой имени пользователя и проверкой пароля123
Когда я нажимаю кнопку, происходит переход к файлу FusionApi.cs, и у меня возникает проблема с передачей значения json в URL api.
Мне нужно добавить базовую аутентификацию (имя пользователя : test & Password : test123).
Для параметров он имеет commit=true
Для заголовков content-Type: "application/json”
[
{"params": {
"query": "Service",
"filterQueries": ["!haslayout_b:false","searchable_s:false"],
"docId": "http://web_intranet/{8f31bf38-069e-4ce7-a108-b3e7903fd26c}?lang=en&ver=2&ndx=sitecore_web_index" },
"type":"test",
"timestamp": "2015-05-10T19:05:00.000Z"
}
]
HTML:
<body>
<div class="container">
<div class="row" style="margin-top:25px;">
<div class="col-md-4">
<label>Query:</label>
</div>
<div class="col-md-6">
<input type="text" class="form-control" id="Query">
</div>
</div>
<div class="row" style="margin-top:10px;">
<div class="col-md-4">
<label>FilterQueries-haslayout_b:</label>
</div>
<div class="col-md-6">
<label class="radio-inline"><input type="radio" name="haslayout_b" value="true">True</label>
<label class="radio-inline"><input type="radio" name="haslayout_b" value="false" checked>False</label>
</div>
</div>
<div class="row" style="margin-top:10px;">
<div class="col-md-4">
<label>FilterQueries-searchable_s:</label>
</div>
<div class="col-md-6">
<label class="radio-inline"><input type="radio" name="searchable_s" value="true">True</label>
<label class="radio-inline"><input type="radio" name="searchable_s" value="false" checked>False</label>
</div>
</div>
<div class="row" style="margin-top:10px;">
<div class="col-md-4">
<label>DocId:</label>
</div>
<div class="col-md-6">
<textarea class="form-control" rows="5" id="DocId"></textarea>
</div>
</div>
<div class="row" style="margin-top:25px;">
<div class="col-md-4">
<label>Type:</label>
</div>
<div class="col-md-6">
<input type="text" class="form-control" id="Type" value="click" disabled>
</div>
</div>
<div class="row" style="margin-top:25px;">
<div class="col-md-4">
<label>Timestamp:</label>
</div>
<div class="col-md-6">
<input type="date" value="@System.DateTime.Today.ToShortDateString()" id="Timestamp" disabled>
</div>
</div>
<button type="button" onclick="FusionPost()" class="btn btn-success" style="float:right;">Submit</button>
</div>
</body>
</html>
<script>
function FusionPost() {
debugger;
var FusionValue = {
query: $("#Query").val(),
haslayout_b: $("input[name='haslayout_b']:checked").val(),
searchable_s: $("input[name='searchable_s']:checked").val(),
docId: $("#DocId").val(),
type: $("#Type").val(),
timestamp: $("#Timestamp").val()
};
$.ajax({
type: "POST",
url: "@Url.Action("FusionApi", "Fusion")",
datatype: "JSON",
data: { FusionValue},
success: function (Result) {
console.log(Result.type);
}
}) };
</script>
Cs код:
public JsonResult FusionApi(Fusions FusionValue)
{
try
{
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.TryAddWithoutValidation(name: "Username", value: "test");
client.DefaultRequestHeaders.TryAddWithoutValidation(name: "Password", value: "test123");
client.DefaultRequestHeaders.Add(name: "Accept", value: "application/json");
client.BaseAddress = new Uri("http://localhost:8700/api/signals/Web_Collection?commit=true");
string url = "http://localhost:8700/api/signals/Web_Collection?commit=true";
HttpResponseMessage response = client.PostAsJsonAsync(url, new Fusions { docId = FusionValue.docId}).Result;
int responsestate = (int)response.StatusCode;
return Json(new { type = responsestate });
}
}
catch (Exception ex)
{
return Json(new { type = ex.ToString()});
}
}