Здравствуйте, настраиваю глобальный поиск, хочу удалить индексы:
http://айпи:81/sites/sales/search
Пробовал вот так:
curl -XDELETE http://айпи:81/sites/sales/search-*/
Но потом при curl -v -X POST -d '{"templateName": "default.json"}' -H "Content-Type: application/json" http://айпи:81/sites/sales/search
Как правильно удалить ранее созданные индексы?
Выдает ошибку:
{"code":500,"status":"error","message":"System.Exception: Could not check index 'uoospgg4cm6abfpjuotlbfcrco0pq5esrxuexjqw6vndxtx4gvnpjtljeneotytt' exists. ---> System.Exception: Invalid NEST response built from a unsuccessful low level call on HEAD: /uoospgg4cm6abfpjuotlbfcrco0pq5esrxuexjqw6vndxtx4gvnpjtljeneotytt\n# Audit trail of this API call:\n - [1] BadRequest: Node: http://elasticsearch-public-ip:9200/ Took: 00:00:10.0127688\n# OriginalException: System.Net.Http.HttpRequestException: Resource temporarily unavailable ---> System.Net.Sockets.SocketException: Resource temporarily unavailable\n   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)\n   --- End of inner exception stack trace ---\n   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)\n   at System.Threading.Tasks.ValueTask`1.get_Result()\n   at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n   at System.Threading.Tasks.ValueTask`1.get_Result()\n   at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask`1 creationTask)\n   at System.Threading.Tasks.ValueTask`1.get_Result()\n   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)\n   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n   at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)\n   at Elasticsearch.Net.HttpConnection.Request[TReturn](RequestData requestData) in C:\\Users\\russc\\source\\git\\elasticsearch-net-5.x\\src\\Elasticsearch.Net\\Connection\\HttpConnection-CoreFx.cs:line 78\n# Request:\r\n\n# Response:\r\n\n\n   --- End of inner exception stack trace ---\n   at GlobalSearch.WebApp.Services.SearchManagement.SearchService.CheckIndexExist(String indexName) in /src/Src/GlobalSearch.WebApp/Services/SearchManagement/SearchService.cs:line 95\n   at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.SearchManagement.DeleteSearchRequestHandler.DeleteSearchBySite(Site site) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/SearchManagement/DeleteSearchRequestHandler.cs:line 44\n   at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.SearchManagement.DeleteSearchRequestHandler.InternalHandle(DeleteSearchRequest request) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/SearchManagement/DeleteSearchRequestHandler.cs:line 70\n   at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.BaseRequestHandler`1.Handle(TRequest request) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/BaseRequestHandler.cs:line 38"}

Нравится

1 комментарий

Евгений, добрый день! 



Вам следует обратить внимание на причину, по которой в запросе не удаётся определить существование индекса, а именно на запись:

 

Invalid NEST response built from a unsuccessful low level call on HEAD

Попробуйте поискать информацию по данному фрагменту.

Показать все комментарии

Запрос в браузере возвращает результат нормально https://goldcoachcrm.bpmonline.com/0/ServiceModel/EntityDataService.svc…)

а вот если делать его на php curl  используя функцию http://prntscr.com/i5xuim тогда получаем вместо ответа ОШИБКУ

https://goldcoachcrm.bpmonline.com/0/ServiceModel/EntityDataService.svc…)



Bad Request


Bad Request


HTTP Error 400. The request is badly formed.


 

С чем это может быть связано и как это обойти?

Нравится

1 комментарий

Добрый день. Посмотрите отправленные запросы через Fiddler и сравните их.

Показать все комментарии

Приветствую.
Хочу сделать интеграцию с внешней системой, в частности мессенджером Slack, он позволяет сделать WebHook, и обращаться к нему посредством POST запроса, например:

curl -X POST --data-urlencode 'payload={"channel": "#general", "username": "BPM-bot", "text": "This is posted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX

Это запостит в канал #general от имени BPM-bot сообщение text и смайл, https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXX уникальный адрес webhook`а для моего инстанса Slack.

Как в BPM реализовать отправку этого сообщения? Т.е. как сделать бизнес-процесс мне понятно, а вот с отправкой сложности...

Нравится

1 комментарий
public class RequestUtils: IDisposable {
 
    #region Methods: Private
 
    private async Task<HttpWebResponse> SendRequest(WebRequest request) {
        var response = await request.GetResponseAsync();
        return (HttpWebResponse)response;
    }
 
    #endregion
 
    #region Methods: Public
 
    public void Dispose() {
    }
 
    public void DoPostRequest(string requestUri, string user, string pwd, string text) {
       /* data sample
        {
            "userName": "user1",
            "password": "password",
            "data": "Hello"
        }
        */
        /* Преобразовываем в json */
        string jsonData = JsonConvert.SerializeObject(new {
            userName = user,
            paswword = pwd,
            data = text
        });
        /* uri sample: http://localhost/MyApp/bla.svc/Login */
        WebRequest request = WebRequest.Create(requestUri);
        byte[] dataArray = Encoding.UTF8.GetBytes(jsonData);
        request.Method = "POST";
        request.ContentType = "application/json";
        request.ContentLength = dataArray.Length;
        Stream stream = request.GetRequestStream();
        stream.Write(dataArray, 0, dataArray.Length);
        /* send request */
 
        /* async */
        var response = SendRequest(request);
 
        /* or sync*/
        var response = request.GetResponse();
    }
 
    #endregion
}
Показать все комментарии