【问题标题】:How to transmit data with XML如何用 XML 传输数据
【发布时间】:2023-01-27 20:01:40
【问题描述】:

是否有可能通过 xml 通过与 tcp 的套接字连接发送图像?

使用 url 我可以像这样发送它。

def composeMessage(uid, lat, lon, file_path=None):
# Initialize CoT parameters
now = datetime.datetime.utcnow()
start = now.strftime(DATETIME_FORMAT)
time = now.strftime(DATETIME_FORMAT)
stale = (now + datetime.timedelta(minutes=STALE_DURATION)).strftime(DATETIME_FORMAT)
if file_path:
    size = str(calcSize(file_path))
    hash = str(calcHash(file_path))

# Build XML
event = ET.Element('event')
event.set('version', '2.0')
event.set('uid', uid)
event.set('type', "a-{attitude}-{dimension}".format(attitude=ATTITUDE,
                                                    dimension=DIMENSION))
event.set('how', HOW)
event.set('start', start)
event.set('time', time)
event.set('stale', stale)

detail = ET.SubElement(event, 'detail')
contact = ET.SubElement(detail, 'contact')
contact.set('callsign', CALLSIGN)
remarks = ET.SubElement(detail, 'remarks')

if file_path:
    fileshare = ET.SubElement(detail, 'fileshare')
    fileshare.set('filename', PACKAGE_FILE_NAME)
    url = 'http://{ip}:{port}/getfile?file={uid}&sender={sender}'\
          .format(ip=SERVER_IP, port=SERVER_PORT, uid=uid, sender=SENDER_CALLSIGN)
    #how can I turn it into url a file? 
    fileshare.set('senderUrl', url) 
    fileshare.set('sizeInBytes', size)
    fileshare.set('sha256', hash)
    fileshare.set('senderUid', SENDER_UID)
    fileshare.set('senderCallsign', SENDER_CALLSIGN)
    fileshare.set('name', FILESHARE_NAME)

    ackreq = ET.SubElement(detail, 'ackrequest')
    ackreq.set('uid', uuid.uuid4().hex)
    ackreq.set('ackrequested', 'true')
    ackreq.set('tag', PACKAGE_FILE_NAME)

point = ET.SubElement(event, 'point')
point.set('le', '0.0')
point.set('ce', '1.0')
point.set('hae', '10.0')
point.set('lat', str(lat))
point.set('lon', str(lon))

return ET.tostring(event)

但我读到图像和数据可以通过 xml 发送。是否可以通过 xml 传输文件?顺便说一句,我正在使用婴儿床协议。

【问题讨论】:

    标签: xml


    【解决方案1】:

    我发现 cursor-on-target 消息协议的详细标签下的标签只能为项目定制。所以我找到了一个相关标签来使用 base64 字符串到相关标签,而不是试图在 xml 中传递二进制文件。

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多