Como obter o PictureURL do Exact Online XML-feed para mostrar a imagem usando Invantive Data Access Point?

6

Ao usar o Data Access Point para gerar um feed XML, use a seguinte consulta:

select * from exactonlinerest..items

o XML resultante possui um PictureURL:

https://start.exactonline.nl/docs/SysImage.aspx?Table=Items&ID=3332e277-ba03-420e-84ce-21ac174c5ced&ThumbSize=500&NoCache=1&OptimizeForWeb=1&_Division_=875673

Mas ao tentar abrir o URL, ocorre um erro e a imagem não é mostrada.

Como eu faria para tornar essa imagem visível?

    
por RH1985 23.02.2017 / 10:48

3 respostas

2

Você pode recuperar a imagem do Exact Online através do mesmo canal seguro usado para as APIs como um blob usando:

select httpget(pictureurl) picture
from   me

Isso recupera a imagem, que está no exemplo abaixo, renderizada automaticamente pela Ferramenta de consulta (50 tons de cinza):

Observeque,sevocêfizermuitohttpget,cadaumdelesteráalgumasobrecarga.Especialmenteaobaixarmilharesdefotos,vocêterámuitacarganoExactOnline.Façaissoapenasquandonecessário.

Comoalternativa,vocêtambémpodeusar:

select*fromexactonlinexml..items

AAPIXMLdoExactOnlineretornaaimagemnaprópriacargaútil,reduzindoonúmerodeviagensdeidaevolta.Adesvantageméquesevocêtiverumaimagemde15.000x15.000pixelsx32deprofundidade,vocêobterá...exatamenteisso,eéenorme,grandeeincrível.ObservequeaAPIXMLusacompactaçãoHTTP(gzip).

AvantagemdaURLusadapelaAPIRESTéqueelacriaumaminiatura.IssogeraráalgumacarganoservidorExact(nãoseiseecomoelessãoarmazenadosemcache),masreduzasrestriçõesderede.ObservequeastabelasdaAPIRESTNÃOusamcompactaçãoHTTP,portanto,asaídacompactávelaindarequermuitalarguradebanda.Comovocêpodever,hámuitasdecisõesdeprojetoparafazeretestar,apesardafacilidadedeusodoSQL,aofazergrandesdownloadse/ouuploads.

Vocêprovavelmentepodemexernotamanhodaminiatura,conformemostradoabaixo:

    
por 23.02.2017 / 12:22
4

O URL no download XML do Data Access Point é codificado em XML, o que significa que alguns caracteres com significado especial foram substituídos por sua variante codificada. (como & - > & ).

Você tem que decodificar a URL (existem muitas ferramentas on-line disponíveis e, através de algum código, também é possível, dependendo da linguagem de programação usada) para sua variante decodificada. Para o seu URL:

https://start.exactonline.nl/docs/SysImage.aspx?Table=Items&ID=3332e277-ba03-420e-84ce-21ac174c5ced&ThumbSize=500&NoCache=1&OptimizeForWeb=1&_Division_=875673

Você precisa estar logado na interface web do Exact Online para poder acessar a imagem pelo caminho.

    
por 23.02.2017 / 11:03
0

A imagem está disponível quando você está conectado ao Exact Online.

Além disso, você pode recuperar a imagem quando passar o Portador de Autorização de juramento no cabeçalho het na Solicitação Obter.

Quando você usa a API Exact Online Client em C #, é assim:

  using (var stream = client.GetAttachment(PictureUrl))
                        {
                            int ReadByte = stream.ReadByte();
                            List<byte> readlist = new List<byte>();

                            while (ReadByte >= 0)
                            {
                                readlist.Add((byte)ReadByte);
                                ReadByte = stream.ReadByte();
                            }
                            downloadData = readlist.ToArray();
                        }
    
por 03.04.2018 / 16:15