Find

Question
· Aug 19, 2024

ensemble中如何调用服务上传excel文件,请求头类型multipart/form-data;出现一堆调试乱码,是文件类型设置的问题还是哪里的问题?

1.我在java中发布了一个服务提供给调用,postman中可以请求解析出数据

请求信息如下:

POST /uploadPersonExcel HTTP/1.1
Host: localhost:8017
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
cache-control: no-cache
Postman-Token: 1c23edfe-1e83-44c6-8f91-e06bccfd4af3

Content-Disposition: form-data; name="file"; filename="C:\Users\elite\Desktop\personinfo.xlsx

------WebKitFormBoundary7MA4YWxkTrZu0gW--

 

2.Ensemble中请求代码如下:

ClassMethod PostFile()
{
	    Set excelpath = "C:\Users\elite\Desktop\personinfo.xlsx"
	    s filename="personinfo.xlsx"
	    s fullPathName=excelpath
        Set HttpRequest = ##class(%Net.HttpRequest).%New() 
        set HttpRequest.Server="127.0.0.1"
	    set HttpRequest.Port="8017"
	    //set HttpRequest.AcceptGzip=0
        //d HttpRequest.SetHeader("Accept", "'*/*'")
        //d HttpRequest.SetHeader("Access-Control-Allow-Origin","*")
        s stream=##class(%Stream.FileBinary).%New()
		s sc=stream.LinkToFile(excelpath) 
		//多个文件    
		s RootMIMEPart = ##class(%Net.MIMEPart).%New()
		//单个文件
		s BinaryMIMEPart = ##class(%Net.MIMEPart).%New()
		s BinaryMIMEPart.Body = stream
		;d BinaryMIMEPart.SetHeader("Content-Type", "application/octet-stream")
		d BinaryMIMEPart.SetHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
		d BinaryMIMEPart.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_filename_$CHAR(34)_"")
		S status = RootMIMEPart.Parts.Insert(BinaryMIMEPart)
		s writer = ##class(%Net.MIMEWriter).%New()
		d writer.OutputToStream(HttpRequest.EntityBody)
		d writer.WriteMIMEBody(RootMIMEPart)
		d HttpRequest.SetHeader("Content-Type", "multipart/form-data; boundary="_RootMIMEPart.Boundary)
		d HttpRequest.SetHeader("Content-Disposition","form-data; name="_$CHAR(34)_"file"_$CHAR(34)_"; filename="_$CHAR(34)_excelpath_$CHAR(34)_"")    
		d HttpRequest.InsertFormData("file", BinaryMIMEPart)
		s tSCx = HttpRequest.Post("/uploadPersonExcel",1, 1)   
        w:tSCx'=1 $System.Status.GetErrorText(tSCx)
		If '$IsObject( HttpRequest.HttpResponse) {
		      s err = "Response Error"
		      //$$$TRACE(err)
		} 
		Set Myresponse = HttpRequest.HttpResponse
		If $IsObject(Myresponse) {
		set data1 = ""
		set stream1 = Myresponse.Data
		While 'stream1.AtEnd { 
			set data1 = data1 _ stream1.ReadLine(,.sc,.eol)
			If $$$ISERR(sc) { 
			   set data1 = data1 _ "ERROR" Quit
			} 
		}
		w "返回结果:"_data1,!
		}
}

测试模式下的消息如下:

不知道问题出在哪里?

2 Comments
Discussion (2)2
Log in or sign up to continue
Digest
· Aug 19, 2024
Digest
· Aug 19, 2024
InterSystems Official
· Aug 18, 2024

InterSystems サポートプラットフォーム最新情報 Q3-2024

2024年第3四半期のプラットフォーム最新情報をお届けします。今回は、いつもの OS 更新情報に加えて、AIX のセキュリティ向上に関連するニュースをお伝えします。 

初めてご覧になる方、はじめまして!この記事では、最近おこなわれた変更点や今後予定されている変更点に関する情報を、みなさまに共有させていただきます。ただ、将来の予測は難しい側面があり、ロードマップは約束されたものではないということを十分ご理解くださいませ。  

InterSystems IRIS 本番環境用オペレーティングシステムと CPU アーキテクチャ

Red Hat Enterprise Linux

  • 最近の変更点
    • IRIS 2024.1 での RHEL 9.4 および 8.10 に関するマイナー OS 認証が問題なく完了しました。
  • 過去にお知らせ済みの変更点
  • 今後予定されている変更点
    • RHEL の次期メジャーバージョン RHEL 10 のリリースは 2025年Q2 に予定されています。
    • 短期間サポートである RHEL 9.5 および 8.11 が年末ごろリリースされると予想されます。リリースされ次第、IRIS 2024.1 でのマイナー OS 認証を実施する予定です。
  • Red Hat のリリースライフサイクルについては こちら をご覧ください。

Ubuntu

  • 最近の変更点
    • IRIS 2024.1 での Ubuntu 22.04.3 に関するマイナー OS 認証が問題なく完了しました。
  • 過去にお知らせ済みの変更点
    • Ubuntu 24.04 サポートは IRIS 2024.1.0.267.2 で5月15日に追加されました。これはUbuntu 24.04 がリリースされてから3週間以内に完了しています。
    • 現在 Ubuntu 24.04 が利用可能になっており、IRIS 2024.1 は Ubuntu 20.04 をサポートする最後のメジャーバージョンになる予定です。IRIS 2024.2 ではUbuntu 22.04 と 24.04 のみをサポートする予定です。
  • Ubuntu のリリース履歴については こちら をご覧ください。

SUSE Linux

  • 最近の変更点
    • SUSE Linux Enterprise Server 15 SP6 が 5月にリリースされました。リリースノートは こちら をご覧ください。
  • 過去にお知らせ済みの変更点
    • SUSE for Linux Enterprise Server 15 SP3 の一般サポートは 2022年12月31日で終了しましたが、延長サポートは 2025年12月まで継続される予定です。
  • SUSE ライフサイクルについては こちら をご覧ください。

Oracle Linux

  • 過去にお知らせ済みの変更点
    • IRIS 2023.1 での Oracle Linux 9.2 のマイナー OS 認証が問題なく完了しました。
  • Oracle Linux のサポートポリシーについては こちら をご覧ください。

Microsoft Windows

  • 今後予定されている変更点
    • Windows Server 2025 のリリースは Q4 に予定されています。InterSystems も注目しており、サポート計画を立てているところです。
    • Windows 12 が早ければ 6月にも発表される予定です。リリースされ次第、新OSのサポートに向けて動く予定です。
  • Microsoft のライフサイクルについては、 こちら をご覧ください。

AIX

  • 今後予定されている変更点
    • IRIS 2024.3 以降では、OpenSSL 3 キットのみをサポートする予定です。IRIS 2023.3 および 2024.1 では、2 つの個別の IRIS キットが提供されました。1 つは OpenSSL 1 をサポートし、もう 1 つは OpenSSL 3 をサポートします。システム全体のセキュリティにおける OpenSSL 3 の重要性を考慮して、OpenSSL 3 へすでに移行したという声を多くのユーザーから聞いています。これについて懸念がある場合は、@Bob Kuszewski  までご連絡ください。前回の四半期の更新情報では、OpenSSL 3 のサポートの最初のリリースは 2025.1 になるとお伝えしていましたが、 重要性を考えて、開始時期を早める決定を行いました。
  • AIX のライフサイクルについては、 こちら をご覧ください。

コンテナ

  • 最近の変更点
    • IRIS 2024.2 で、ベース コンテナ イメージを Ubuntu 22.04 から Ubuntu 24.04 に変更しました。
    • 現在、ベース IRIS コンテナに変更を行い、デフォルトでは、( ECP やミラーリングなどの) 内部トラフィックと、( ODBC や JDBC などの) 外部トラフィックとを、別のポートにすることを検討しています。こちらに関してご要望がございましたら、@Bob Kuszewski までご連絡ください。
  • 過去にお知らせ済みの変更点
    • ベースコンテナイメージおよびサードパーティの関連テクノロジーに関するパッチを含んだ IRIS コンテナの定期アップデートを開始しました。新しいタグルールに基づく IRIS コンテナは、少なくとも隔週おきに更新されます。

InterSystems IRIS 開発環境用オペレーティングシステムと CPU アーキテクチャ

MacOS

  • 過去にお知らせ済みの変更点
    • Apple は MacOS 14 をリリースしました。IRIS 2024.1 がサポートします。

InterSystems コンポーネント

Caché ならびに Ensemble 本番環境用オペレーティングシステムと CPU アーキテクチャ

  • 過去にお知らせ済みの変更点
    • Caché ならびにEnsemble の最終メンテナンスリリースは 2027年第一四半期になる予定です。想像より早くその日はやってきます。詳細は Jeff の記事をご覧ください。

InterSystems サポートプラットフォームに関するドキュメント

サポート・プラットフォームに関するドキュメントにて、サポートリストの正式な情報を入手いただけます

以上になります。もし追加で知りたい情報がございましたら、ぜひコメントなどを通じてお知らせください。

Discussion (0)0
Log in or sign up to continue
Question
· Aug 18, 2024

Microsoft Entra and IRIS

Dear All,

I am currently part of a team that is developing an application using Microsoft PowerApps as the front end and IRIS as the backend.  Effectively that frontend screens, which are house and an Azure serve, call a series of REST interfaces exposed by IRIS from a physical Microsoft server.  During the development stage we have not had any security in place but now we need to secure the application using a single sign on.  PowerApps relies on Microsoft Entra for its security both LDAP and OAuth.  Has anyone in the community connected IRIS to Microsoft Entra? 

I have managed to register register the REST endpoints in Microsoft Entra as an application hence have a ClientID and so on.

Any help would be much appreciated.

Regards

Brad

2 Comments
Discussion (2)2
Log in or sign up to continue